no
no
permalink
yes
hide
hide
show
hide
show
hide
hide
no
yes
no
no
yes
1
380px
fixed
yes

tc-btn-boxed
no
yes
hide
hide
hide
hide
hide
show
hide
hide
{
    "tiddlers": {
        "$:/Acknowledgements": {
            "title": "$:/Acknowledgements",
            "type": "text/vnd.tiddlywiki",
            "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
        },
        "$:/core/copyright.txt": {
            "title": "$:/core/copyright.txt",
            "type": "text/plain",
            "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2017, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
        },
        "$:/core/icon": {
            "title": "$:/core/icon",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
        },
        "$:/core/images/advanced-search-button": {
            "title": "$:/core/images/advanced-search-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n        <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n    </g>\n</svg>"
        },
        "$:/core/images/auto-height": {
            "title": "$:/core/images/auto-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>"
        },
        "$:/core/images/blank": {
            "title": "$:/core/images/blank",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>"
        },
        "$:/core/images/bold": {
            "title": "$:/core/images/bold",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/cancel-button": {
            "title": "$:/core/images/cancel-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t    <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-down": {
            "title": "$:/core/images/chevron-down",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/chevron-left": {
            "title": "$:/core/images/chevron-left",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n    <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-right": {
            "title": "$:/core/images/chevron-right",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-up": {
            "title": "$:/core/images/chevron-up",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/clone-button": {
            "title": "$:/core/images/clone-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n        <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-all-button": {
            "title": "$:/core/images/close-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n        <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n        <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n        <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n        <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-button": {
            "title": "$:/core/images/close-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/close-others-button": {
            "title": "$:/core/images/close-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/copy-clipboard": {
            "title": "$:/core/images/copy-clipboard",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-copy-clipboard tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\">\n\t\t<rect x=\"40\" y=\"40\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"82\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"54\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"96\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"68\" width=\"12\" height=\"8\" rx=\"4\"></rect>\n\t\t<path d=\"M40,16 L23.9992458,16 C19.5813843,16 16,19.5907123 16,24 C16,24.0016363 16.0000005,24.0032725 16.0000015,24.0049086 C16.0000005,24.0065441 16,24.0081803 16,24.0098166 L16,119.990183 C16,119.99182 16.0000005,119.993456 16.0000015,119.995092 C16.0000005,119.996727 16,119.998364 16,120 C16,124.409288 19.5813843,128 23.9992458,128 L104.000754,128 C106.205061,128 108.203844,127.105595 109.652065,125.659342 C111.102424,124.21251 112,122.214511 112,120.007595 L112,103.992405 C112,99.5776607 108.418278,96 104,96 C99.5907123,96 96,99.5783218 96,103.992405 L96,112 L32,112 L32,32 L96,32 L96,40.0075946 C96,44.4223393 99.581722,48 104,48 C108.409288,48 112,44.4216782 112,40.0075946 L112,23.9924054 C112,21.7851587 111.104671,19.7871591 109.657101,18.3409203 C108.203844,16.8944047 106.205061,16 104.000754,16 L88,16 C88,11.5907123 84.4151006,8 79.9929031,8 L48.0070969,8 C43.5881712,8 40,11.581722 40,16 Z M44,14.9958262 C44,12.7889923 45.7964248,11 48.0000255,11 L79.9999745,11 C82.2091276,11 84,12.7965212 84,14.9958262 L84,19.0041738 C84,21.2110077 82.2035752,23 79.9999745,23 L48.0000255,23 C45.7908724,23 44,21.2034788 44,19.0041738 L44,14.9958262 Z\"></path>\n\t\t<rect x=\"62\" y=\"64\" width=\"66\" height=\"16\" rx=\"8\"></rect>\n\t\t<path d=\"M60.6568542,85.6568542 L76.6568542,69.6568543 L65.3431458,69.6568542 L81.3431458,85.6568542 C84.4673401,88.7810486 89.5326599,88.7810486 92.6568542,85.6568542 C95.7810486,82.5326599 95.7810486,77.4673401 92.6568542,74.3431458 L76.6568542,58.3431458 C73.5326599,55.2189514 68.4673401,55.2189514 65.3431458,58.3431457 L49.3431458,74.3431457 C46.2189514,77.4673401 46.2189514,82.5326599 49.3431457,85.6568542 C52.4673401,88.7810486 57.5326599,88.7810486 60.6568542,85.6568542 L60.6568542,85.6568542 Z\" transform=\"translate(71.000000, 72.000000) rotate(-90.000000) translate(-71.000000, -72.000000) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/delete-button": {
            "title": "$:/core/images/delete-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n        <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/done-button": {
            "title": "$:/core/images/done-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/down-arrow": {
            "title": "$:/core/images/down-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>"
        },
        "$:/core/images/download-button": {
            "title": "$:/core/images/download-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>"
        },
        "$:/core/images/edit-button": {
            "title": "$:/core/images/edit-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n        <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/erase": {
            "title": "$:/core/images/erase",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/excise": {
            "title": "$:/core/images/excise",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/export-button": {
            "title": "$:/core/images/export-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/file": {
            "title": "$:/core/images/file",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/fixed-height": {
            "title": "$:/core/images/fixed-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-all-button": {
            "title": "$:/core/images/fold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n        <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-button": {
            "title": "$:/core/images/fold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n        <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-others-button": {
            "title": "$:/core/images/fold-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n        <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/folder": {
            "title": "$:/core/images/folder",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n        <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/full-screen-button": {
            "title": "$:/core/images/full-screen-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g>\n        <g>\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/github": {
            "title": "$:/core/images/github",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n        <g fill-rule=\"evenodd\">\n            <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n        </g>\n    </svg>\n"
        },
        "$:/core/images/globe": {
            "title": "$:/core/images/globe",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n        <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n        <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-1": {
            "title": "$:/core/images/heading-1",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-2": {
            "title": "$:/core/images/heading-2",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-3": {
            "title": "$:/core/images/heading-3",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-4": {
            "title": "$:/core/images/heading-4",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-5": {
            "title": "$:/core/images/heading-5",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-6": {
            "title": "$:/core/images/heading-6",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/help": {
            "title": "$:/core/images/help",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/home-button": {
            "title": "$:/core/images/home-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/import-button": {
            "title": "$:/core/images/import-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/info-button": {
            "title": "$:/core/images/info-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <g transform=\"translate(0.049406, 0.000000)\">\n            <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n            <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n            <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/italic": {
            "title": "$:/core/images/italic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n         <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n    </g>\n</svg>"
        },
        "$:/core/images/left-arrow": {
            "created": "20150315234410875",
            "modified": "20150315235324760",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/left-arrow",
            "text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n"
        },
        "$:/core/images/line-width": {
            "title": "$:/core/images/line-width",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n        <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/link": {
            "title": "$:/core/images/link",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n        <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-bullet": {
            "title": "$:/core/images/list-bullet",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-number": {
            "title": "$:/core/images/list-number",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list": {
            "title": "$:/core/images/list",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.719999312,185.568543 C2.21955287,181.862817 3.0452019,177.812144 3.0452019,173.568542 C3.0452019,155.891545 -11.2816707,141.568542 -28.9547636,141.568542 L-60.9548326,141.568542 C-78.6344937,141.568542 -92.9547981,155.895431 -92.9547981,173.568542 C-92.9547981,191.24554 -78.6279255,205.568542 -60.9548326,205.568542 L-28.9547636,205.568542 C-27.593228,205.568542 -26.2516158,205.483573 -24.9349335,205.31865 C-31.5207556,201.78951 -36.8809788,196.272192 -40.2126959,189.568542 L-60.9493786,189.568542 C-69.7889277,189.568542 -76.9547981,182.407041 -76.9547981,173.568542 C-76.9547981,164.731986 -69.7994766,157.568542 -60.9493786,157.568542 L-28.9602176,157.568542 C-20.1206685,157.568542 -12.9547981,164.730044 -12.9547981,173.568542 C-12.9547981,176.946528 -14.0004297,180.080016 -15.7866505,182.6623 C-13.6856165,184.473592 -10.949961,185.568542 -7.9585771,185.568542 L0.720002586,185.568542 Z\" transform=\"translate(-44.954798, 173.568542) rotate(-225.000000) translate(44.954798, -173.568542) \"></path>\n        <path d=\"M87.7480315,128 L23.9992458,128 C19.5813843,128 16,124.409247 16,119.993027 L16,8.00697327 C16,3.58484404 19.5881049,0 23.9992458,0 L104.000754,0 C108.418616,0 112,3.59075293 112,8.00697327 L112,104 L91.2492027,104 C90.2848199,104 89.410573,104.391703 88.7768998,105.025201 C88.1373658,105.661376 87.7480315,106.53563 87.7480315,107.501171 L87.7480315,128 Z M95.7480315,127.879386 L111.627417,112 L95.7480315,112 L95.7480315,127.879386 Z M40,15.5089165 C40,13.5709954 41.5636015,12 43.4998101,12 L98.5001899,12 C100.433082,12 102,13.5614718 102,15.5089165 L102,16.4910835 C102,18.4290046 100.436399,20 98.5001899,20 L43.4998101,20 C41.5669183,20 40,18.4385282 40,16.4910835 L40,15.5089165 Z M32,22 C35.3137085,22 38,19.3137085 38,16 C38,12.6862915 35.3137085,10 32,10 C28.6862915,10 26,12.6862915 26,16 C26,19.3137085 28.6862915,22 32,22 Z M40,31.5089165 C40,29.5709954 41.5636015,28 43.4998101,28 L98.5001899,28 C100.433082,28 102,29.5614718 102,31.5089165 L102,32.4910835 C102,34.4290046 100.436399,36 98.5001899,36 L43.4998101,36 C41.5669183,36 40,34.4385282 40,32.4910835 L40,31.5089165 Z M40,47.5089165 C40,45.5709954 41.5636015,44 43.4998101,44 L98.5001899,44 C100.433082,44 102,45.5614718 102,47.5089165 L102,48.4910835 C102,50.4290046 100.436399,52 98.5001899,52 L43.4998101,52 C41.5669183,52 40,50.4385282 40,48.4910835 L40,47.5089165 Z M40,63.5089165 C40,61.5709954 41.5636015,60 43.4998101,60 L98.5001899,60 C100.433082,60 102,61.5614718 102,63.5089165 L102,64.4910835 C102,66.4290046 100.436399,68 98.5001899,68 L43.4998101,68 C41.5669183,68 40,66.4385282 40,64.4910835 L40,63.5089165 Z M40,79.5089165 C40,77.5709954 41.5636015,76 43.4998101,76 L98.5001899,76 C100.433082,76 102,77.5614718 102,79.5089165 L102,80.4910835 C102,82.4290046 100.436399,84 98.5001899,84 L43.4998101,84 C41.5669183,84 40,82.4385282 40,80.4910835 L40,79.5089165 Z M40,95.5089165 C40,93.5709954 41.5636015,92 43.4998101,92 L98.5001899,92 C100.433082,92 102,93.5614718 102,95.5089165 L102,96.4910835 C102,98.4290046 100.436399,100 98.5001899,100 L43.4998101,100 C41.5669183,100 40,98.4385282 40,96.4910835 L40,95.5089165 Z M40,111.508916 C40,109.570995 41.5680474,108 43.4972017,108 L76.5027983,108 C78.4342495,108 80,109.561472 80,111.508916 L80,112.491084 C80,114.429005 78.4319526,116 76.5027983,116 L43.4972017,116 C41.5657505,116 40,114.438528 40,112.491084 L40,111.508916 Z M32,38 C35.3137085,38 38,35.3137085 38,32 C38,28.6862915 35.3137085,26 32,26 C28.6862915,26 26,28.6862915 26,32 C26,35.3137085 28.6862915,38 32,38 Z M32,54 C35.3137085,54 38,51.3137085 38,48 C38,44.6862915 35.3137085,42 32,42 C28.6862915,42 26,44.6862915 26,48 C26,51.3137085 28.6862915,54 32,54 Z M32,70 C35.3137085,70 38,67.3137085 38,64 C38,60.6862915 35.3137085,58 32,58 C28.6862915,58 26,60.6862915 26,64 C26,67.3137085 28.6862915,70 32,70 Z M32,86 C35.3137085,86 38,83.3137085 38,80 C38,76.6862915 35.3137085,74 32,74 C28.6862915,74 26,76.6862915 26,80 C26,83.3137085 28.6862915,86 32,86 Z M32,102 C35.3137085,102 38,99.3137085 38,96 C38,92.6862915 35.3137085,90 32,90 C28.6862915,90 26,92.6862915 26,96 C26,99.3137085 28.6862915,102 32,102 Z M32,118 C35.3137085,118 38,115.313708 38,112 C38,108.686292 35.3137085,106 32,106 C28.6862915,106 26,108.686292 26,112 C26,115.313708 28.6862915,118 32,118 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/locked-padlock": {
            "title": "$:/core/images/locked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mail": {
            "title": "$:/core/images/mail",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/menu-button": {
            "title": "$:/core/images/menu-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>"
        },
        "$:/core/images/mono-block": {
            "title": "$:/core/images/mono-block",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mono-line": {
            "title": "$:/core/images/mono-line",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-button": {
            "title": "$:/core/images/new-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-here-button": {
            "title": "$:/core/images/new-here-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n    \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t        <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t        <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n        </g>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n    </g>\n    </g>\n</svg>"
        },
        "$:/core/images/new-image-button": {
            "title": "$:/core/images/new-image-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-journal-button": {
            "title": "$:/core/images/new-journal-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n        <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n            <g transform=\"translate(0.000000, 0.000000)\">\n                <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n                <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n                    <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n                </text>\n            </g>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/opacity": {
            "title": "$:/core/images/opacity",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n        <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n        <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/open-window": {
            "title": "$:/core/images/open-window",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n        <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/options-button": {
            "title": "$:/core/images/options-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/paint": {
            "title": "$:/core/images/paint",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/palette": {
            "title": "$:/core/images/palette",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permalink-button": {
            "title": "$:/core/images/permalink-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permaview-button": {
            "title": "$:/core/images/permaview-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/picture": {
            "title": "$:/core/images/picture",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-language": {
            "title": "$:/core/images/plugin-generic-language",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-plugin": {
            "title": "$:/core/images/plugin-generic-plugin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-theme": {
            "title": "$:/core/images/plugin-generic-theme",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-closed": {
            "title": "$:/core/images/preview-closed",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n        <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-open": {
            "title": "$:/core/images/preview-open",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n        <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/print-button": {
            "title": "$:/core/images/print-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,71 L112,30.5 L111.96811,30.5 L111.96811,30.5 C111.932942,28.4998414 111.151676,26.510538 109.625176,24.9840387 L86.9982489,2.35711116 C85.3482153,0.707077645 83.1589869,-0.071534047 81,0.0201838424 L81,0 L23.9992458,0 C19.5808867,0 16,3.58213437 16,8.00092105 L16,71 L24,71 L24,8 L81,8 L81,22.4996539 C81,26.9216269 84.5818769,30.5 89.0003461,30.5 L104,30.5 L104,71 L112,71 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n        <path d=\"M0,80.0054195 C0,71.1658704 7.15611005,64 16.0008841,64 L111.999116,64 C120.83616,64 128,71.1553215 128,80.0054195 L128,111.99458 C128,120.83413 120.84389,128 111.999116,128 L16.0008841,128 C7.16383982,128 0,120.844679 0,111.99458 L0,80.0054195 Z M104,96 C108.418278,96 112,92.418278 112,88 C112,83.581722 108.418278,80 104,80 C99.581722,80 96,83.581722 96,88 C96,92.418278 99.581722,96 104,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/quote": {
            "title": "$:/core/images/quote",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/refresh-button": {
            "title": "$:/core/images/refresh-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/right-arrow": {
            "title": "$:/core/images/right-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>"
        },
        "$:/core/images/save-button": {
            "title": "$:/core/images/save-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/size": {
            "title": "$:/core/images/size",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>"
        },
        "$:/core/images/spiral": {
            "title": "$:/core/images/spiral",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/stamp": {
            "title": "$:/core/images/stamp",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/star-filled": {
            "title": "$:/core/images/star-filled",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-classic": {
            "title": "$:/core/images/storyview-classic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-pop": {
            "title": "$:/core/images/storyview-pop",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-zoomin": {
            "title": "$:/core/images/storyview-zoomin",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/strikethrough": {
            "title": "$:/core/images/strikethrough",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n        <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/subscript": {
            "title": "$:/core/images/subscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/superscript": {
            "title": "$:/core/images/superscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/tag-button": {
            "title": "$:/core/images/tag-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z\"></path>\n        <path d=\"M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/theme-button": {
            "title": "$:/core/images/theme-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n        <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/timestamp-off": {
            "title": "$:/core/images/timestamp-off",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-timestamp-off tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/>\n    </g>\n</svg>\n"
        },
        "$:/core/images/timestamp-on": {
            "title": "$:/core/images/timestamp-on",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-timestamp-on tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n    </g>\n</svg>\n"
        },
        "$:/core/images/tip": {
            "title": "$:/core/images/tip",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/twitter": {
            "title": "$:/core/images/twitter",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/underline": {
            "title": "$:/core/images/underline",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-all-button": {
            "title": "$:/core/images/unfold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n        <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-button": {
            "title": "$:/core/images/unfold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n        <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unlocked-padlock": {
            "title": "$:/core/images/unlocked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/up-arrow": {
            "created": "20150316000544368",
            "modified": "20150316000831867",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/up-arrow",
            "text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n"
        },
        "$:/core/images/video": {
            "title": "$:/core/images/video",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/warning": {
            "title": "$:/core/images/warning",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "advanced search"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "Advanced search"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "cancel"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "Discard changes to this tiddler"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "clone"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "Clone this tiddler"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "close"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "Close this tiddler"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "close all"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "Close all tiddlers"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "close others"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "Close other tiddlers"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "control panel"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "Open control panel"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "delete"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "Delete this tiddler"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "edit"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "Edit this tiddler"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "encryption"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "Set or clear a password for saving this wiki"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "clear password"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "Clear the password and save this wiki without encryption"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "set password"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "Set a password for saving this wiki with encryption"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "export all"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "Export all tiddlers"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "export tiddler"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "Export tiddler"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "export tiddlers"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "Export tiddlers"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "fold tiddler"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "Fold the body of this tiddler"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "fold-bar"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "Optional bars to fold and unfold tiddlers"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "unfold tiddler"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "Unfold the body of this tiddler"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "fold other tiddlers"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "Fold the bodies of other opened tiddlers"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "fold all tiddlers"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "Fold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "unfold all tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "Unfold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "full-screen"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "Enter or leave full-screen mode"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "help"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "Show help panel"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "import"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "Import many types of file including text, image, TiddlyWiki or JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "info"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "Show information for this tiddler"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "home"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "Open the default tiddlers"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "language"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "Choose the user interface language"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "tiddler manager"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "Open tiddler manager"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "more"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "More actions"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "new here"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "Create a new tiddler tagged with this one"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "new journal"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "Create a new journal tiddler"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "new journal here"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "Create a new journal tiddler tagged with this one"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "new image"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "Create a new image tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "new Markdown tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "Create a new Markdown tiddler"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "new tiddler"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "Create a new tiddler"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "open in new window"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "Open tiddler in new window"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "palette"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "Choose the colour palette"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "permalink"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "Set browser address bar to a direct link to this tiddler"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "permaview"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "Set browser address bar to a direct link to all the tiddlers in this story"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "print page"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "Print the current page"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "refresh"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "Perform a full refresh of the wiki"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "ok"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "Confirm changes to this tiddler"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "save changes"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "Save changes"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "storyview"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "Choose the story visualisation"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "hide sidebar"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "Hide sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "show sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "Show sidebar"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "tag manager"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "Open tag manager"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "timestamps"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "Choose whether modifications update timestamps"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "timestamps are on"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "Update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "timestamps are off"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "Don't update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "theme"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "Choose the display theme"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "bold"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "Apply bold formatting to selection"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "clear"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "Clear image to solid colour"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "editor height"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "Automatically adjust height to fit content"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "Fixed height:"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "Choose the height of the text editor"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "excise"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "Perform excision"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "Macro name:"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "Title of new tiddler:"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "Replace excised text with:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "macro"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "link"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "transclusion"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "Tag new tiddler with the title of this tiddler"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "Warning: tiddler already exists"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "Excise the selected text into a new tiddler"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "heading 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "Apply heading level 1 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "heading 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "Apply heading level 2 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "heading 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "Apply heading level 3 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "heading 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "Apply heading level 4 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "heading 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "Apply heading level 5 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "heading 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "Apply heading level 6 formatting to lines containing selection"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "italic"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "Apply italic formatting to selection"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "line width"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "Set line width for painting"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "link"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "Create wikitext link"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "bulleted list"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "Apply bulleted list formatting to lines containing selection"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "numbered list"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "Apply numbered list formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "monospaced block"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "Apply monospaced block formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "monospaced"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "Apply monospaced character formatting to selection"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "opacity"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "Set painting opacity"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "paint colour"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "Set painting colour"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "picture"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "Insert picture"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "preview"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "Show preview pane"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "preview type"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "Choose preview type"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "quote"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "Apply quoted text formatting to lines containing selection"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "image size"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "Height:"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "Resize image"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "Width:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "Set image size"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "stamp"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "Add your own"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "Insert a preconfigured snippet of text"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "Name as shown in menu"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "strikethrough"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "Apply strikethrough formatting to selection"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "subscript"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "Apply subscript formatting to selection"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "superscript"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "Apply superscript formatting to selection"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "underline"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "Apply underline formatting to selection"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "Internal information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "Appearance"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "Ways to customise the appearance of your TiddlyWiki."
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "Animation duration:"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "Basics"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "Use &#91;&#91;double square brackets&#93;&#93; for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "Default tiddlers:"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "Choose which tiddlers are displayed at startup:"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "Hello! Current language:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "Title of new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "Text for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "Tags for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "Number of overridden shadow tiddlers:"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "Number of shadow tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "Subtitle:"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "Number of system tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "Number of tags:"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "Number of tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "Title of this ~TiddlyWiki:"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "Username for signing edits:"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki version:"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "Editor Types"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "Editor"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "These tiddlers determine which editor is used to edit specific tiddler types."
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "Type"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "Info"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "Information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "Type shortcut here"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "add shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "Keyboard Shortcuts"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "Manage keyboard shortcut assignments"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "No keyboard shortcuts assigned"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "remove keyboard shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "All platforms"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "Macintosh platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "Non-Macintosh platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "Linux platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "Non-Linux platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "Windows platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "Non-Windows platforms only"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "Loaded Modules"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "Palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "clone"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "It is recommended that you clone this shadow palette before editing it"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "This shadow palette has been modified"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "Editing"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "reset"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "hide editor"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "Current palette:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "show editor"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "Parsing"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|http://tiddlywiki.com/#SafeMode]] to restore normal operation."
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "Block Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "Inline Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "Pragma Parse Rules"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "Get more plugins"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "Install plugins from the official library"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "disable"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "Disable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(disabled)"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "None"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "enable"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "Enable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "install"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "Currently installed plugins:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "Languages"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "Language pack plugins"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
        },
        "$:/language/ControlPanel/Plugins/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "No information provided"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "This plugin is not currently installed"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "open plugin library"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "close plugin library"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "reinstall"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "Themes"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "Theme plugins"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "Saving"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "Permit automatic saving for the download saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "Enable Autosave for Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "These settings apply to the HTML5-compatible download saver"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "General"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "These settings apply to all the loaded savers"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "Advanced Settings"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "Backup Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "Backups"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot Saver"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "Upload Filename"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "Password"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "Server URL"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "Upload Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "Wiki Name"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "Autosave"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "Do not save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "Save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "Attempt to automatically save changes during editing when using a supporting saver"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "Camel Case Wiki Links"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "Enable automatic ~CamelCase linking"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "Settings"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "Enable or disable the editor toolbar:"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "Show editor toolbar"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "Tiddler Info Panel Mode"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "Control when the tiddler info panel closes:"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "Tiddler info panel closes automatically"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "Tiddler info panel stays open until explicitly closed"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "These settings let you customise the behaviour of TiddlyWiki."
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "Navigation Address Bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "Behaviour of the browser address bar when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "Do not update the address bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "Include the target tiddler"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "Include the target tiddler and the current story sequence"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "Navigation History"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "Update browser history when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "Do not update history"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "Update history"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "Performance Instrumentation"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "Enable performance instrumentation"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "Toolbar Button Style"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "Choose the style for toolbar buttons:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "Borderless"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "Boxed"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "Rounded"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "Toolbar Buttons"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "Default toolbar button appearance:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "Include icon"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "Include text"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "Default Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "Specify which sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "Tiddler Opening Behaviour"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "Navigation from //within// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "Navigation from //outside// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "Open above the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "Open below the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "Open at the top of the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "Open at the bottom of the story river"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "Tiddler Titles"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "Optionally display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "Do not display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "Display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "Wiki Links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "Choose whether to link to tiddlers that do not exist yet"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "Enable links to missing tiddlers"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "Story View"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "Current view:"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "Theme"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "Current theme:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "Tiddler Fields"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "Toolbars"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "Edit Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "Select which toolbar buttons are displayed"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "Page Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "View Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "Download full wiki"
        },
        "$:/language/Date/DaySuffix/1": {
            "title": "$:/language/Date/DaySuffix/1",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/2": {
            "title": "$:/language/Date/DaySuffix/2",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/3": {
            "title": "$:/language/Date/DaySuffix/3",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/4": {
            "title": "$:/language/Date/DaySuffix/4",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/5": {
            "title": "$:/language/Date/DaySuffix/5",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/6": {
            "title": "$:/language/Date/DaySuffix/6",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/7": {
            "title": "$:/language/Date/DaySuffix/7",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/8": {
            "title": "$:/language/Date/DaySuffix/8",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/9": {
            "title": "$:/language/Date/DaySuffix/9",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/10": {
            "title": "$:/language/Date/DaySuffix/10",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/11": {
            "title": "$:/language/Date/DaySuffix/11",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/12": {
            "title": "$:/language/Date/DaySuffix/12",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/13": {
            "title": "$:/language/Date/DaySuffix/13",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/14": {
            "title": "$:/language/Date/DaySuffix/14",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/15": {
            "title": "$:/language/Date/DaySuffix/15",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/16": {
            "title": "$:/language/Date/DaySuffix/16",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/17": {
            "title": "$:/language/Date/DaySuffix/17",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/18": {
            "title": "$:/language/Date/DaySuffix/18",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/19": {
            "title": "$:/language/Date/DaySuffix/19",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/20": {
            "title": "$:/language/Date/DaySuffix/20",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/21": {
            "title": "$:/language/Date/DaySuffix/21",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/22": {
            "title": "$:/language/Date/DaySuffix/22",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/23": {
            "title": "$:/language/Date/DaySuffix/23",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/24": {
            "title": "$:/language/Date/DaySuffix/24",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/25": {
            "title": "$:/language/Date/DaySuffix/25",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/26": {
            "title": "$:/language/Date/DaySuffix/26",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/27": {
            "title": "$:/language/Date/DaySuffix/27",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/28": {
            "title": "$:/language/Date/DaySuffix/28",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/29": {
            "title": "$:/language/Date/DaySuffix/29",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/30": {
            "title": "$:/language/Date/DaySuffix/30",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/31": {
            "title": "$:/language/Date/DaySuffix/31",
            "text": "st"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "Sunday"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "Monday"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "Tuesday"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "Wednesday"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "Thursday"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "Friday"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "Saturday"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "January"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "February"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "March"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "April"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "May"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "June"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "July"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "August"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "September"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "October"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "November"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "December"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "am"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "pm"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "Sun"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "Mon"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "Tue"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "Wed"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "Thu"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "Fri"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "Sat"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "Jan"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "Feb"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "Mar"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "Apr"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "May"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "Jun"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "Jul"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "Aug"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "Sep"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "Oct"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "Nov"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "Dec"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> days from now"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> hours from now"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> minutes from now"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> months from now"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 second from now"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> seconds from now"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> years from now"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> days ago"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> hours ago"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> minutes ago"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> months ago"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 second ago"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> seconds ago"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> years ago"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "A sub-operator for the ''all'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "Animations that may be used with the RevealWidget."
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "A bitmap editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "Commands that can be executed under Node.js."
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "Data to be inserted into `$tw.config`."
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "Individual filter operator methods."
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "Global data to be inserted into `$tw`."
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "Operands for the ''is'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "Generic module type for general purpose JavaScript modules."
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript macro definitions."
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "Parsers for different content types."
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "Savers handle different methods for saving files from the browser."
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "Startup functions."
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "Story views customise the animation and behaviour of list widgets."
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "A text editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "Converts different content types into tiddlers."
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "Defines the behaviour of an individual tiddler field."
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "Adds methods to the `$tw.Tiddler` prototype."
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "Applies upgrade processing to tiddlers during an upgrade/import."
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "Adds methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "Adds Node.js-specific methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "Widgets encapsulate DOM rendering and refreshing."
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "Adds methods to `$tw.Wiki`."
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "Individual parser rules for the main WikiText parser."
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "Alert background"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "Alert border"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "Alert highlight"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "Alert muted foreground"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "General background"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "Blockquote bar"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "Default button background"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "Default button border"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "Default button foreground"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "Unsaved changes indicator"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "Code background"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "Code border"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "Code foreground"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "Download button background"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "Download button foreground"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "Dragger background"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "Dragger foreground"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "Dropdown background"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "Dropdown border"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "Dropdown tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "Dropdown tab background"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "Dropzone background"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "External link background hover"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "External link background visited"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "External link background"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "External link foreground hover"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "External link foreground visited"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "External link foreground"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "General foreground"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "Message box background"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "Message box border"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "Message box foreground"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "Modal backdrop"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "Modal background"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "Modal border"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "Modal footer background"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "Modal footer border"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "Modal header border"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "General muted foreground"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "Notification background"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "Notification border"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "Page background"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "Preformatted code background"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "Preformatted code border"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "General primary"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "Sidebar button foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "Sidebar controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "Sidebar controls foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "Sidebar foreground shadow"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "Sidebar foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "Sidebar muted foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "Sidebar muted foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "Sidebar tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "Sidebar tab background"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "Sidebar tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "Sidebar tab border"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "Sidebar tab divider"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "Sidebar tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "Sidebar tab foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "Sidebar tiddler link foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "Sidebar tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "Site title foreground"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "Static alert foreground"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "Tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "Tab background"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "Tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "Tab border"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "Tab divider"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "Tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "Tab foreground"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "Table border"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "Table footer background"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "Table header background"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "Tag background"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "Tag foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "Tiddler background"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "Tiddler border"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "Tiddler controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "Tiddler controls foreground for selected controls"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "Tiddler controls foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "Tiddler editor background"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "Tiddler editor border image"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "Tiddler editor border"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "Tiddler editor background for even fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "Tiddler editor background for odd fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "Tiddler info panel background"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "Tiddler info panel border"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "Tiddler info panel tab background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "Tiddler link background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "Tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "Tiddler subtitle foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "Tiddler title foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "Toolbar 'new tiddler' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "Toolbar 'options' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "Toolbar 'save' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "Toolbar 'info' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "Toolbar 'edit' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "Toolbar 'close' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "Toolbar 'delete' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "Toolbar 'cancel' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "Toolbar 'done' button foreground"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "Untagged pill background"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "Very muted foreground"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "This is an external tiddler stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "Type the text for this tiddler"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "output"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "remove field"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "Remove field"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "field name"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "Add a new field:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "field value"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "System fields"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "User fields"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "tag name"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "tag list"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "Show tag list"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "Target tiddler already exists"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "content type list"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "Show content type list"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "delete content type"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "Delete content type"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "content type"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "Type:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "Static HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON file"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV file"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" file"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "The full URI of an external image tiddler"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "The name of the bag from which a tiddler came"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "The text to be displayed on a tab or button"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "The CSS color value associated with a tiddler"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "The date a tiddler was created"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "The name of the person who created a tiddler"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "For a plugin, lists the dependent plugin titles"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "The descriptive text for a plugin, or a modal dialogue"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "For draft tiddlers, contains the proposed new title of the tiddler"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "The footer text for a wizard"
        },
        "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": {
            "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
            "text": "A temporary storage field used in [[$:/core/templates/static.content]]"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "The title of the tiddler containing the icon associated with a tiddler"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "An ordered list of tiddler titles associated with a tiddler"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "The date and time at which a tiddler was last modified"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "The tiddler title associated with the person who last modified a tiddler"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "The human readable name associated with a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "A numerical value indicating the priority of a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "The type of plugin in a plugin tiddler"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "The revision of the tiddler held at the server"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "Date of a TiddlyWiki release"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "The source URL associated with a tiddler"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "The subtitle text for a wizard"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "A list of tags associated with a tiddler"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "The body text of a tiddler"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "The unique name of a tiddler"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "The content type of a tiddler"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "Version information for a plugin"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "All tiddlers except system tiddlers"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "Recently modified tiddlers, including system tiddlers"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "Recently modified tiddlers"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "All tags except system tags"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "Missing tiddlers"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "Draft tiddlers"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "Orphan tiddlers"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "System tiddlers"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "Shadow tiddlers"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "Overridden shadow tiddlers"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "System tags"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "Non wiki-text tiddlers"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is important to make sure that you can reliably save changes. See http://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "Automatically run configured commands",
            "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "Clear a password for subsequent crypto operations",
            "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "Lists the available editions of TiddlyWiki",
            "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "Fetch tiddlers from wiki by URL",
            "text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n```\n\nWith the \"file\" variant only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" variant, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nThe `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nThe `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from http://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"http://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "Display help for TiddlyWiki commands",
            "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "Initialise a new wiki folder",
            "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "Load tiddlers from a file",
            "text": "Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files\n\n```\n--load <filepath>\n```\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "Construct library plugin required by upgrade process",
            "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "No such help item"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "Set the base output directory for subsequent commands",
            "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "Set a password for subsequent crypto operations",
            "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "Render an individual tiddler as a specified ContentType",
            "text": "Render an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "Render tiddlers matching a filter to a specified ContentType",
            "text": "Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "Saves a raw tiddler to a file",
            "text": "Saves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "Saves a group of raw tiddlers to a directory",
            "text": "Saves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "Provides an HTTP server interface to TiddlyWiki",
            "text": "The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.\n\nAt the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\nThe parameters are:\n\n* ''port'' - port number to serve from (defaults to \"8080\")\n* ''roottiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''servetype'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''pathprefix'' - optional prefix for paths\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "Prepares external tiddlers for use",
            "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "Unpack the payload tiddlers from a plugin",
            "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "Triggers verbose output mode",
            "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "Displays the version number of TiddlyWiki",
            "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "The following tiddlers were imported:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "These tiddlers are ready to import:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "Import"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "Select"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "Status"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "Title"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "Blocked incompatible or obsolete plugin"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "Blocked temporary state tiddler"
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "Blocked system tiddler"
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "Migrated theme tweak from <$text text=<<from>>/>"
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|http://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "This tiddler contains binary data"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details."
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "upgrade"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "close all"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "Recent:"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "count"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "New Tiddler"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "Drop here (or use the 'Escape' key to cancel)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "Cancel"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "Set a new password for this TiddlyWiki"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "Username"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "Password"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "Repeat password"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "Passwords do not match"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "Set password"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "Error"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "File changed on server"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "Filter error"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "Syntax error in filter expression"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "Filter Error: Unknown operand for the 'is' filter operator"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "Error loading plugin library"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "Recursive transclusion error in transclude widget"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "Error retrieving skinny tiddler list"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "Error saving to TWEdit"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "Error while saving"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest error code"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "Internal JavaScript Error"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>Loading external text from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear you may be using a browser that doesn't support external text in this configuration. See http://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "Login to TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(none)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "Filter by tag:"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "Reverse order"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "Search"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "Search:"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "tags"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "tiddlers"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "Show:"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "Sort by:"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "Colour"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "Fields"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(none)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "Icon"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "Raw text"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "Tags"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "Tools"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified text"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" - click {{$:/core/images/edit-button}} to create"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "No"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "Official ~TiddlyWiki Plugin Library"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "DDth MMM YYYY"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "This is a system tiddler"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "Include system tiddlers"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "Colour"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "Count"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "Icon"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "Info"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "Tag"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "DDth MMM YYYY at hh12:0mmam"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "You have unsaved changes in TiddlyWiki"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "Yes"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://tiddlywiki.com/static/DownloadingChanges.html",
            "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://tiddlywiki.com/static/SavingChanges.html",
            "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "DDth MMM YYYY"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "Journal"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "Saved wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "Starting to save wiki"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "List"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "Filter"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "Search via a [[filter expression|http://tiddlywiki.com/static/Filters.html]]"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "All matches:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "Title matches:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "Search"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "Search text too short"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "Search for shadow tiddlers"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "Standard"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "Search for standard tiddlers"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "System"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "Search for system tiddlers"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "All"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "Contents"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "Drafts"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "Missing"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "More"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "Open"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "Orphans"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "Recent"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "System"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "Tags"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "untagged"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "Types"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "a non-linear personal web notebook"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "My ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "List of tiddlers by tag",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Macro definition",
            "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table with 4 columns by 3 rows",
            "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table of Contents",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "Theme Tweaks"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "You can tweak certain aspects of the ''Vanilla'' theme."
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "Options"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "Sidebar layout"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "Fixed story, fluid sidebar"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "Fluid story, fixed sidebar"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "Sticky titles"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "Causes tiddler titles to \"stick\" to the top of the browser window. Caution: Does not work at all with Chrome, and causes some layout issues in Firefox"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "Wrap long lines in code blocks"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "Settings"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "Font family"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "Code font family"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "Page background image"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "Page background image attachment"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "Scroll with tiddlers"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "Fixed to window"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "Page background image size"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "Auto"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "Cover"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "Contain"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "Sizes"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "Font size"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "Line height"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "Font size for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "Line height for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "Story left position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "Story top position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "how far the top margin of the story river<br>is from the top of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "Story right"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "how far the left margin of the sidebar <br>is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "Story width"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "the overall width of the story river"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "Tiddler width"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "within the story river"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "Sidebar breakpoint"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "Sidebar width"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "the width of the sidebar in fluid-fixed layout"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "none"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "Plugin Details"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "This plugin contains the following shadow tiddlers:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "Shadow Status"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "It is overridden by an ordinary tiddler"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "Fields"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "List"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "This tiddler does not have a list"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "Listed"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "This tiddler is not listed by any others"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "References"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "No tiddlers link to this one"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "Tagging"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "No tiddlers are tagged with this one"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript code",
            "name": "application/javascript",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON data",
            "name": "application/json",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "Data dictionary",
            "name": "application/x-tiddler-dictionary",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF image",
            "name": "image/gif",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG image",
            "name": "image/jpeg",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG image",
            "name": "image/png",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "Structured Vector Graphics image",
            "name": "image/svg+xml",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "ICO format icon file",
            "name": "image/x-icon",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "Static stylesheet",
            "name": "text/css",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML markup",
            "name": "text/html",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "Plain text",
            "name": "text/plain",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki Classic",
            "name": "text/x-tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/languages/en-GB/icon": {
            "title": "$:/languages/en-GB/icon",
            "type": "image/svg+xml",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
        },
        "$:/languages/en-GB": {
            "title": "$:/languages/en-GB",
            "name": "en-GB",
            "description": "English (British)",
            "author": "JeremyRuston",
            "core-version": ">=5.0.0\"",
            "text": "Stub pseudo-plugin for the default language"
        },
        "$:/core/modules/commander.js": {
            "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
            "title": "$:/core/modules/commander.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/commands/build.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/build.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/clearpassword.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/clearpassword.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/editions.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\"    \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/editions.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/fetch.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tvar subcommand = this.params[0],\n\t\turl = this.params[1],\n\t\timportFilter = this.params[2] || \"[all[tiddlers]]\",\n\t\ttransformFilter = this.params[3] || \"\";\n\tswitch(subcommand) {\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: url,\n\t\t\t\timportFilter: importFilter,\n\t\t\t\ttransformFilter: transformFilter,\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: url,\n\t\t\t\timportFilter: importFilter,\n\t\t\t\ttransformFilter: transformFilter,\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback) {\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t    var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t    \tbody = \"\";\n\t    self.commander.write(\"Reading \" + url + \": \");\n\t    response.on(\"data\",function(chunk) {\n\t        body += chunk;\n\t        self.commander.write(\".\");\n\t    });\n\t    response.on(\"end\",function() {\n\t        self.commander.write(\"\\n\");\n\t        if(response.statusCode === 200) {\n\t\t        self.processBody(body,type,options);\n\t\t        callback(null);\n\t        } else {\n\t        \tcallback(\"Error \" + response.statusCode + \" retrieving \" + url)\n\t        }\n\t   \t});\n\t   \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t   \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options) {\n\t// Deserialise the HTML file and put the tiddlers in their own wiki\n\tvar self = this,\n\t\tincomingWiki = new $tw.Wiki(),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body,{});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter);\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/fetch.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/help.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/help.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/init.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/init.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/load.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar ext = path.extname(self.params[0]),\n\t\tstat = fs.statSync(self.params[0]),\n\t\ttiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count) {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/load.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/makelibrary.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/makelibrary.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/output.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/output.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/password.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/rendertiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/rendertiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savelibrarytiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler,null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{text: undefined, readme: readmeContent, icon: iconContent}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savelibrarytiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savetiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savetiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/server.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\thttp = require(\"http\");\n}\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\n/*\nA simple HTTP server with regexp-based routes\n*/\nfunction SimpleServer(options) {\n\tthis.routes = options.routes || [];\n\tthis.wiki = options.wiki;\n\tthis.variables = options.variables || {};\n}\n\nSimpleServer.prototype.set = function(obj) {\n\tvar self = this;\n\t$tw.utils.each(obj,function(value,name) {\n\t\tself.variables[name] = value;\n\t});\n};\n\nSimpleServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nSimpleServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nSimpleServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"pathprefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length);\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nSimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {\n\tvar header = request.headers.authorization || \"\",\n\t\ttoken = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tusername = parts[0],\n\t\tpassword = parts[1];\n\tif(incomingUsername === username && incomingPassword === password) {\n\t\treturn \"ALLOWED\";\n\t} else {\n\t\treturn \"DENIED\";\n\t}\n};\n\nSimpleServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Check for the username and password if we've got one\n\tvar username = self.get(\"username\"),\n\t\tpassword = self.get(\"password\");\n\tif(username && password) {\n\t\t// Check they match\n\t\tif(self.checkCredentials(request,username,password) !== \"ALLOWED\") {\n\t\t\tvar servername = state.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\";\n\t\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + servername + '\"'\n\t\t\t});\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Set the encoding for the incoming request\n\t// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers\n\trequest.setEncoding(\"utf8\");\n\t// Dispatch the appropriate method\n\tswitch(request.method) {\n\t\tcase \"GET\": // Intentional fall-through\n\t\tcase \"DELETE\":\n\t\t\troute.handler(request,response,state);\n\t\t\tbreak;\n\t\tcase \"PUT\":\n\t\t\tvar data = \"\";\n\t\t\trequest.on(\"data\",function(chunk) {\n\t\t\t\tdata += chunk.toString();\n\t\t\t});\n\t\t\trequest.on(\"end\",function() {\n\t\t\t\tstate.data = data;\n\t\t\t\troute.handler(request,response,state);\n\t\t\t});\n\t\t\tbreak;\n\t}\n};\n\t\nSimpleServer.prototype.listen = function(port,host) {\n\thttp.createServer(this.requestHandler.bind(this)).listen(port,host);\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n\t// Set up server\n\tthis.server = new SimpleServer({\n\t\twiki: this.commander.wiki\n\t});\n\t// Add route handlers\n\tthis.server.addRoute({\n\t\tmethod: \"PUT\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\tfields = JSON.parse(state.data);\n\t\t\t// Pull up any subfields in the `fields` object\n\t\t\tif(fields.fields) {\n\t\t\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\t\t\tfields[name] = field;\n\t\t\t\t});\n\t\t\t\tdelete fields.fields;\n\t\t\t}\n\t\t\t// Remove any revision field\n\t\t\tif(fields.revision) {\n\t\t\t\tdelete fields.revision;\n\t\t\t}\n\t\t\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\t\t\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\t\t\tresponse.writeHead(204, \"OK\",{\n\t\t\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"DELETE\",\n\t\tpath: /^\\/bags\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]);\n\t\t\tstate.wiki.deleteTiddler(title);\n\t\t\tresponse.writeHead(204, \"OK\", {\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"serveType\")});\n\t\t\tvar text = state.wiki.renderTiddler(state.server.get(\"renderType\"),state.server.get(\"rootTiddler\"));\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/status$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar text = JSON.stringify({\n\t\t\t\tusername: state.server.get(\"username\"),\n\t\t\t\tspace: {\n\t\t\t\t\trecipe: \"default\"\n\t\t\t\t},\n\t\t\t\ttiddlywiki_version: $tw.version\n\t\t\t});\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/favicon.ico$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\t\t\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\t\t\tresponse.end(buffer,\"base64\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers.json$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar tiddlers = [];\n\t\t\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\t\t\tvar tiddlerFields = {};\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tif(name !== \"text\") {\n\t\t\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\ttiddlers.push(tiddlerFields);\n\t\t\t});\n\t\t\tvar text = JSON.stringify(tiddlers);\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\ttiddler = state.wiki.getTiddler(title),\n\t\t\t\ttiddlerFields = {},\n\t\t\t\tknownFields = [\n\t\t\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t\t\t];\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\t\t\ttiddlerFields[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t\t\t} else {\n\t\t\t\tresponse.writeHead(404);\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t}\n\t});\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\tvar port = this.params[0] || \"8080\",\n\t\trootTiddler = this.params[1] || \"$:/core/save/all\",\n\t\trenderType = this.params[2] || \"text/plain\",\n\t\tserveType = this.params[3] || \"text/html\",\n\t\tusername = this.params[4],\n\t\tpassword = this.params[5],\n\t\thost = this.params[6] || \"127.0.0.1\",\n\t\tpathprefix = this.params[7];\n\tthis.server.set({\n\t\trootTiddler: rootTiddler,\n\t\trenderType: renderType,\n\t\tserveType: serveType,\n\t\tusername: username,\n\t\tpassword: password,\n\t\tpathprefix: pathprefix\n\t});\n\tthis.server.listen(port,host);\n\tconsole.log(\"Serving on \" + host + \":\" + port);\n\tconsole.log(\"(press ctrl-C to exit)\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/server.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/setfield.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/setfield.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/unpackplugin.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/unpackplugin.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/verbose.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n  \" + $tw.boot.logMessages.join(\"\\n  \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/verbose.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/version.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/version.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/config.js": {
            "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter:   \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
            "title": "$:/core/modules/config.js",
            "type": "application/javascript",
            "module-type": "config"
        },
        "$:/core/modules/deserializers.js": {
            "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
            "title": "$:/core/modules/deserializers.js",
            "type": "application/javascript",
            "module-type": "tiddlerdeserializer"
        },
        "$:/core/modules/editor/engines/framed.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
            "title": "$:/core/modules/editor/engines/framed.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/engines/simple.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
            "title": "$:/core/modules/editor/engines/simple.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/factory.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag);\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup ||  changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\t\t\t\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t    clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t    el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
            "title": "$:/core/modules/editor/factory.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/operations/bitmap/clear.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/bitmap/clear.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/resize.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/bitmap/resize.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/text/excise.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ?  [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/excise.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/make-link.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/make-link.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/prefix-lines.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,event.paramObject.count);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== event.paramObject.count) {\n\t\t\t// Apply the prefix\n\t\t\tline =  prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/prefix-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-all.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/replace-all.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-selection.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/replace-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-lines.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/wrap-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-selection.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/wrap-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/filters/addprefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/addprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/addsuffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/addsuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/after.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/after.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/all/current.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/current.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/missing.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/missing.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/orphans.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/orphans.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/shadows.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/shadows.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tags.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/tags.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/tiddlers.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/backlinks.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/backlinks.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/before.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/before.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/commands.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/commands.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/count.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
            "title": "$:/core/modules/filters/count.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/days.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/days.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/each.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\t\tvalue,values = {},\n\t\tfield = operator.operand || \"title\";\n\tif(operator.suffix !== \"list-item\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvalue = (field === \"title\") ? title : tiddler.getFieldString(field);\n\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/each.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/eachday.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/eachday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editiondescription.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editiondescription.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editions.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editions.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/decodeuricomponent.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/decodeuricomponent.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/enlist.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar list = $tw.utils.parseStringArray(operator.operand);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/enlist.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/field.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/field.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/fields.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/fields.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/get.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/get.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getindex.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/getindex.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/has.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/has.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/haschanged.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/haschanged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/indexes.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/indexes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/insertbefore.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/insertbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/is/current.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/current.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/image.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/missing.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/missing.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/orphan.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/orphan.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/shadow.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/shadow.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/system.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/system.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tag.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/tag.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/tiddler.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/limit.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/limit.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/links.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/links.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/list.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listed.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/listed.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\t\t\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
            "title": "$:/core/modules/filters/listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/minlength.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/minlength.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/modules.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/modules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/moduletypes.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/moduletypes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/next.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/next.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/plugintiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/plugintiddlers.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/prefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/prefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/previous.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/previous.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/regexp.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/regexp.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removeprefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/removeprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removesuffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/removesuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sameday.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sameday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/search.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffix) {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: operator.suffix\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/search.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/shadowsource.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/shadowsource.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sort.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sort.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/splitbefore.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/splitbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/storyviews.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/storyviews.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/suffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/suffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tag.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [];\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !tiddler.hasTag(operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && tiddler.hasTag(operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tag.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tagging.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tagging.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tags.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tags.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/title.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/title.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/untagged.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/untagged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/wikiparserrules.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/wikiparserrules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/x-listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n    /*jslint node: true, browser: true */\n    /*global $tw: false */\n    \"use strict\";\n\n    /*\n    Fetch titles from the current list\n    */\n    var prepare_results = function (source) {\n    var results = [];\n        source(function (tiddler, title) {\n            results.push(title);\n        });\n        return results;\n    };\n\n    /*\n    Moves a number of items from the tail of the current list before the item named in the operand\n    */\n    exports.putbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list after the item named in the operand\n    */\n    exports.putafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Replaces the item named in the operand with a number of items from the tail of the current list\n    */\n    exports.replace = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -count) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list to the head of the list\n    */\n    exports.putfirst = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(-count).concat(results.slice(0, -count));\n    };\n\n    /*\n    Moves a number of items from the head of the current list to the tail of the list\n    */\n    exports.putlast = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(count).concat(results.slice(0, count));\n    };\n\n    /*\n    Moves the item named in the operand a number of places forward or backward in the list\n    */\n    exports.move = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1,\n            marker = results.splice(index, 1),\n            offset =  (index + count) > 0 ? index + count : 0;\n        return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n    };\n\n    /*\n    Returns the items from the current list that are after the item named in the operand\n    */\n    exports.allafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index === -1 || index > (results.length - 2)) ? [] :\n            (operator.suffix) ? results.slice(index) :\n            results.slice(index + 1);\n    };\n\n    /*\n    Returns the items from the current list that are before the item named in the operand\n    */\n    exports.allbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index <= 0) ? [] :\n            (operator.suffix) ? results.slice(0, index + 1) :\n            results.slice(0, index);\n    };\n\n    /*\n    Appends the items listed in the operand array to the tail of the current list\n    */\n    exports.append = function (source, operator) {\n        var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || append.length;\n        return (append.length === 0) ? results :\n            (operator.prefix) ? results.concat(append.slice(-count)) :\n            results.concat(append.slice(0, count));\n    };\n\n    /*\n    Prepends the items listed in the operand array to the head of the current list\n    */\n    exports.prepend = function (source, operator) {\n        var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || prepend.length;\n        return (prepend.length === 0) ? results :\n            (operator.prefix) ? prepend.slice(-count).concat(results) :\n            prepend.slice(0, count).concat(results);\n    };\n\n    /*\n    Returns all items from the current list except the items listed in the operand array\n    */\n    exports.remove = function (source, operator) {\n        var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || array.length,\n            p,\n            len,\n            index;\n        len = array.length - 1;\n        for (p = 0; p < count; ++p) {\n            if (operator.prefix) {\n                index = results.indexOf(array[len - p]);\n            } else {\n                index = results.indexOf(array[p]);\n            }\n            if (index !== -1) {\n                results.splice(index, 1);\n            }\n        }\n        return results;\n    };\n\n    /*\n    Returns all items from the current list sorted in the order of the items in the operand array\n    */\n    exports.sortby = function (source, operator) {\n        var results = prepare_results(source);\n        if (!results || results.length < 2) {\n            return results;\n        }\n        var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n        results.sort(function (a, b) {\n            return lookup.indexOf(a) - lookup.indexOf(b);\n        });\n        return results;\n    };\n\n    /*\n    Removes all duplicate items from the current list\n    */\n    exports.unique = function (source, operator) {\n        var results = prepare_results(source);\n        var set = results.reduce(function (a, b) {\n            if (a.indexOf(b) < 0) {\n                a.push(b);\n            }\n            return a;\n        }, []);\n        return set;\n    };\n})();\n",
            "title": "$:/core/modules/filters/x-listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter\",function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/filters.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/info/platform.js": {
            "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\t// Document location\n\tif($tw.browser) {\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
            "title": "$:/core/modules/info/platform.js",
            "type": "application/javascript",
            "module-type": "info"
        },
        "$:/core/modules/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\tlookupName(\"shortcuts\");\n\t\t\t\tlookupName($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\");\n\t\t\t\tlookupName($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\t\t\t\tlookupName($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t   (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t   (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t   (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t   (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
            "title": "$:/core/modules/keyboard.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/language.js": {
            "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
            "title": "$:/core/modules/language.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/macros/changecount.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
            "title": "$:/core/modules/macros/changecount.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/contrastcolour.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
            "title": "$:/core/modules/macros/contrastcolour.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/csvtiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
            "title": "$:/core/modules/macros/csvtiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/displayshortcuts.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t    return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/macros/displayshortcuts.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/dumpvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/dumpvariables.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddler.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\tvar tiddlers = this.wiki.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/makedatauri.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/makedatauri.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/now.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/now.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/qualify.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
            "title": "$:/core/modules/macros/qualify.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/resolvepath.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/resolvepath.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/version.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
            "title": "$:/core/modules/macros/version.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/parsers/audioparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/audioparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/csvparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/csvparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/htmlparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/htmlparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/imageparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/imageparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/utils/parseutils.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/parseutils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/parsers/pdfparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/pdfparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/textparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/textparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/videoparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/videoparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/dash.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"&ndash;\" : \"&mdash;\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/entity.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: &copy;\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/extlink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: http://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/heading.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/html.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/html.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[http://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [http://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [http://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|http://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/image.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"p\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/list.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[http://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|http://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/rules.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/syslink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/table.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/table.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n  <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/wikiparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined  && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t//  Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t//  Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,nextMatch.matchIndex)});\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,terminatorMatch.index)});\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,inlineRuleMatch.matchIndex)});\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/pluginswitcher.js": {
            "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
            "title": "$:/core/modules/pluginswitcher.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/saver-handler.js": {
            "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tthis.numChanges = 0;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\",\n\t\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
            "title": "$:/core/modules/saver-handler.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/savers/andtidwiki.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Save the file\n\twindow.twi.saveFile(pathname,text);\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/andtidwiki.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/beaker.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar url = (location.toString()).split(\"#\")[0];\n\tdat.stat(url).then(function(value) {\n\t\tif(value.type === \"directory\") {\n\t\t\turl = url + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(url,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\t\t\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.dat;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/beaker.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/download.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\tfilename = document.location.pathname.substr(p+1);\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/download.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/fsosaver.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/fsosaver.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/manualdownload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/manualdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/msdownload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/msdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/put.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\t// Retrieve ETag if available\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"HEAD\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(!err) {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t}\n\t\t}\n\t});\n};\n\nPutSaver.prototype.uri = function() {\n\treturn encodeURI(document.location.toString().split(\"#\")[0]);\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text, method, callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = { \"Content-Type\": \"text/html;charset=UTF-8\" };\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(err) {\n\t\t\t\tcallback(err);\n\t\t\t} if(xhr.status === 200 || xhr.status === 201) {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tcallback(null); // success\n\t\t\t} else if(xhr.status === 412) { // edit conflict\n\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\tcallback(message);\n\t\t\t} else {\n\t\t\t\tcallback(xhr.responseText); // fail\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/put.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyfox.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyfox.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyie.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyie.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/twedit.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
            "title": "$:/core/modules/savers/twedit.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/upload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/upload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/browser-messaging.js": {
            "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t  iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
            "title": "$:/core/modules/browser-messaging.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/commands.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/commands.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/favicon.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/favicon.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/info.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/info.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/load-modules.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/load-modules.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/startup/password.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/render.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n\t})();\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only drafts have changed\n\t\tvar onlyDraftsHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !tiddler.hasField(\"draft.of\")) {\n\t\t\t\tonlyDraftsHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyDraftsHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = DRAFT_TIDDLER_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
            "title": "$:/core/modules/startup/render.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/rootwidget.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the notification  mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tif(document[fullscreen._fullscreenElement]) {\n\t\t\t\tdocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/startup/rootwidget.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.appVersion);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-US\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget = new widget.widget({\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},{\n\t\t\twiki: $tw.wiki,\n\t\t\tdocument: document\n\t\t});\n\t}\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t} \n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/startup.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/story.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permalink\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permaview\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\tif(options.updateAddressBar !== \"no\") {\n\t\t// Get the story and the history stack\n\t\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\t\ttargetTiddler = \"\";\n\t\tif(options.targetTiddler) {\n\t\t\ttargetTiddler = options.targetTiddler;\n\t\t} else {\n\t\t\t// The target tiddler is the one at the top of the stack\n\t\t\tif(historyList.length > 0) {\n\t\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t\t}\n\t\t\t// Blank the target tiddler if it isn't present in the story\n\t\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\t\ttargetTiddler = \"\";\n\t\t\t}\n\t\t}\n\t\t// Assemble the location hash\n\t\tif(options.updateAddressBar === \"permalink\") {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t} else {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t}\n\t\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\t\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\t\tif(options.updateHistory === \"yes\") {\n\t\t\t\t// Assign the location hash so that history is updated\n\t\t\t\twindow.location.hash = $tw.locationHash;\n\t\t\t} else {\n\t\t\t\t// We use replace so that browser history isn't affected\n\t\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t\t}\n\t\t}\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/story.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/windows.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
            "title": "$:/core/modules/startup/windows.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/story.js": {
            "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
            "title": "$:/core/modules/story.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/storyviews/classic.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"translateX(0px)\"},\n\t\t{marginBottom:  currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
            "title": "$:/core/modules/storyviews/classic.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/pop.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
            "title": "$:/core/modules/storyviews/pop.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/zoomin.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx =  zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty =  zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
            "title": "$:/core/modules/storyviews/zoomin.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/syncer.js": {
            "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || this.throttleInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"));\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\tself.handleLazyLoadEvent(title);\n\t});\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t}\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields,hasBeenLazyLoaded) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(this.wiki.getTiddler(tiddlerFields.title),tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: hasBeenLazyLoaded !== undefined ? hasBeenLazyLoaded : true\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t} else {\n\t\t\t\tself.wiki.deleteTiddler(self.titleUserName);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null;\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields,false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\tthis.createTiddlerInfo(title);\n\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t// Queue up a sync task to load this tiddler\n\t\tthis.enqueueSyncTask({\n\t\t\ttype: \"load\",\n\t\t\ttitle: title\n\t\t});\t\t\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(null,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress() === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields,true);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
            "title": "$:/core/modules/syncer.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = [];\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
            "title": "$:/core/modules/tiddler.js",
            "type": "application/javascript",
            "module-type": "tiddlermethod"
        },
        "$:/core/modules/upgraders/plugins.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/plugins.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/system.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/system.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/themetweaks.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/themetweaks.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/utils/crypto.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/crypto.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/animations/slide.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/animations/slide.js",
            "type": "application/javascript",
            "module-type": "animation"
        },
        "$:/core/modules/utils/dom/animator.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/animator.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/browser.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/browser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/csscolorparser.js": {
            "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n  \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n  \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n  \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n  \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n  \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n  \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n  \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n  \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n  \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n  \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n  \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n  \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n  \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n  \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n  \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n  \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n  \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n  \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n  \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n  \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n  \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n  \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n  \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n  \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n  \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n  \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n  \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n  \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n  \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n  \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n  \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n  \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n  \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n  \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n  \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n  \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n  \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n  \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n  \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n  \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n  \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n  \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n  \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n  \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n  \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n  \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n  \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n  \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n  \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n  \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n  \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n  \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n  \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n  \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n  \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n  \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n  \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n  \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n  \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n  \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n  \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n  \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n  \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n  \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n  \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n  \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n  \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n  \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n  \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n  \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n  \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n  \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n  \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n  \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) {  // Clamp to integer 0 .. 255.\n  i = Math.round(i);  // Seems to be what Chrome does (vs truncation).\n  return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) {  // Clamp to float 0.0 .. 1.0.\n  return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) {  // int or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_byte(parseFloat(str) / 100 * 255);\n  return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) {  // float or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_float(parseFloat(str) / 100);\n  return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n  if (h < 0) h += 1;\n  else if (h > 1) h -= 1;\n\n  if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n  if (h * 2 < 1) return m2;\n  if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n  return m1;\n}\n\nfunction parseCSSColor(css_str) {\n  // Remove all whitespace, not compliant, but should just be more accepting.\n  var str = css_str.replace(/ /g, '').toLowerCase();\n\n  // Color keywords (and transparent) lookup.\n  if (str in kCSSColorTable) return kCSSColorTable[str].slice();  // dup.\n\n  // #abc and #abc123 syntax.\n  if (str[0] === '#') {\n    if (str.length === 4) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xfff)) return null;  // Covers NaN.\n      return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n              (iv & 0xf0) | ((iv & 0xf0) >> 4),\n              (iv & 0xf) | ((iv & 0xf) << 4),\n              1];\n    } else if (str.length === 7) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xffffff)) return null;  // Covers NaN.\n      return [(iv & 0xff0000) >> 16,\n              (iv & 0xff00) >> 8,\n              iv & 0xff,\n              1];\n    }\n\n    return null;\n  }\n\n  var op = str.indexOf('('), ep = str.indexOf(')');\n  if (op !== -1 && ep + 1 === str.length) {\n    var fname = str.substr(0, op);\n    var params = str.substr(op+1, ep-(op+1)).split(',');\n    var alpha = 1;  // To allow case fallthrough.\n    switch (fname) {\n      case 'rgba':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'rgb':\n        if (params.length !== 3) return null;\n        return [parse_css_int(params[0]),\n                parse_css_int(params[1]),\n                parse_css_int(params[2]),\n                alpha];\n      case 'hsla':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'hsl':\n        if (params.length !== 3) return null;\n        var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360;  // 0 .. 1\n        // NOTE(deanm): According to the CSS spec s/l should only be\n        // percentages, but we don't bother and let float or percentage.\n        var s = parse_css_float(params[1]);\n        var l = parse_css_float(params[2]);\n        var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n        var m1 = l * 2 - m2;\n        return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n                alpha];\n      default:\n        return null;\n    }\n  }\n\n  return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
            "title": "$:/core/modules/utils/dom/csscolorparser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function() {\n\tif(\"scrollX\" in window) {\n\t\treturn {x: window.scrollX, y: window.scrollY};\n\t} else {\n\t\treturn {x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n    // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight;\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/dragndrop.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [];\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/dragndrop.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/http.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tdata = results.join(\"&\");\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/http.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
            "title": "$:/core/modules/utils/dom/keyboard.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/modal.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = document.createElement(\"div\"),\n\t\tmodalBackdrop = document.createElement(\"div\"),\n\t\tmodalWrapper = document.createElement(\"div\"),\n\t\tmodalHeader = document.createElement(\"div\"),\n\t\theaderTitle = document.createElement(\"h3\"),\n\t\tmodalBody = document.createElement(\"div\"),\n\t\tmodalLink = document.createElement(\"a\"),\n\t\tmodalFooter = document.createElement(\"div\"),\n\t\tmodalFooterHelp = document.createElement(\"span\"),\n\t\tmodalFooterButtons = document.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(document.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = document.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(document.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + window.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\twindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tdocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tdocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tif($tw.pageContainer) {\n\t\t$tw.utils.toggleClass($tw.pageContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/modal.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/notifier.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/notifier.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/popup.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\t// Store the popup details if not already there\n\tif(this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode\n\t\t});\n\t}\n\t// Set the state tiddler\n\toptions.wiki.setTextReference(options.title,\n\t\t\t\"(\" + options.domNode.offsetLeft + \",\" + options.domNode.offsetTop + \",\" + \n\t\t\t\toptions.domNode.offsetWidth + \",\" + options.domNode.offsetHeight + \")\");\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/popup.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/scroller.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\t// Now get ready to scroll the body\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = $tw.utils.getScrollPosition();\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar clientBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\ttop: clientBounds.top + scrollPosition.y,\n\t\t\twidth: clientBounds.width,\n\t\t\theight: clientBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t// targetPos/targetSize - position and size of the target element\n\t// currentPos/currentSize - position and size of the current scroll viewport\n\t// returns: new position of the scroll viewport\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to it's top/left\n\t\t\tif(targetPos <= currentPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\tnewPos = targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\tnewPos = currentPos;\n\t\t\t}\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,window.innerWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,window.innerHeight);\n\t// Only scroll if the position has changed\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\twindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/scroller.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/edition-info.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/edition-info.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/fakedom.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis.style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this.style) {\n\t\t\t\tstyle.push(s + \":\" + this.style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\")\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\tconsole.log(booboo)\n\t\t\t\tthrow \"Cannot get textContent on a raw TW_Element\";\t\t\t\t\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tthrow \"Cannot get formattedTextContent on a raw TW_Element\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
            "title": "$:/core/modules/utils/fakedom.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/filesystem.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = new Buffer(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/utils/filesystem.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/logger.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName) {\n\tthis.componentName = componentName || \"\";\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\t// Prepare the text of the alert\n\tvar text = Array.prototype.join.call(arguments,\" \");\n\t// Create alert tiddlers in the browser\n\tif($tw.browser) {\n\t\t// Check if there is an existing alert with the same text and the same component\n\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\talertFields,\n\t\t\texistingCount,\n\t\t\tself = this;\n\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t}\n\t\t});\n\t\tif(alertFields) {\n\t\t\texistingCount = alertFields.count || 1;\n\t\t} else {\n\t\t\talertFields = {\n\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\ttext: text,\n\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\tcomponent: this.componentName\n\t\t\t};\n\t\t\texistingCount = 0;\n\t\t}\n\t\talertFields.modified = new Date();\n\t\tif(++existingCount > 1) {\n\t\t\talertFields.count = existingCount;\n\t\t} else {\n\t\t\talertFields.count = undefined;\n\t\t}\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t// Log the alert as well\n\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t} else {\n\t\t// Print an orange message to the console if not in the browser\n\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
            "title": "$:/core/modules/utils/logger.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/parsetree.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
            "title": "$:/core/modules/utils/parsetree.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/performance.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n}\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tself.measures = {};\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments),\n\t\t\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
            "title": "$:/core/modules/utils/performance.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/pluginmaker.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
            "title": "$:/core/modules/utils/pluginmaker.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/utils.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\tconsole.log($tw.node ? \"\\x1b[1;33m\" + text + \"\\x1b[0m\" : text);\n};\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t\tarray.push(value);\n\t}\n\treturn array;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\",   duration:      365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\",  duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\",    duration:            24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\",   duration:                 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration:                      60 * 1000},\n\t\t{name: \"Seconds\", duration:                           1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&amp;\", < to \"&lt;\", > to \"&gt;\", \" to \"&quot;\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&amp;\").replace(/</mg,\"&lt;\").replace(/>/mg,\"&gt;\").replace(/\\\"/mg,\"&quot;\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2); // Strip the & and the ;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\treturn converter(parseInt(e.substr(2),16));\t\n\t\t} else {\n\t\t\treturn converter(parseInt(e.substr(1),10));\n\t\t}\n\t} else {\n\t\tvar c = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/'/g, \"\\\\'\")              // single quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(/[\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n    return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10);\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn (new Buffer(string64,\"base64\")).toString();\n\t}\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\t\t\n\t\tm =  r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nTransliterate string from eg. Cyrillic Russian to Latin\n*/\nvar transliterationPairs = {\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.split(\"\").map(function(char) {\n\t\treturn transliterationPairs[char] || char;\n\t}).join(\"\");\n};\n\n})();\n",
            "title": "$:/core/modules/utils/utils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/widgets/action-createtiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.generateNewTitle(this.actionBaseTitle),\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-createtiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletefield.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletefield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletetiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletetiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-listops.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-navigate.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-navigate.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-sendmessage.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-sendmessage.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-setfield.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\")  || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-setfield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/browse.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) {\n\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/browse.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/button.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = this.popup && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif(this.set && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(this,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n    return this.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\t$tw.popup.triggerPopup({\n\t\tdomNode: this.domNodes[0],\n\t\ttitle: this.popup,\n\t\twiki: this.wiki\n\t});\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup])) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/button.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/checkbox.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();",
            "title": "$:/core/modules/widgets/checkbox.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/codeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/codeblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/count.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = undefined;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/count.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/draggable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedTiddlers.tag || changedTiddlers[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/draggable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/droppable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t]);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent  = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/droppable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/dropzone.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\n\t]);\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent  = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),function(fieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(fieldsArray)});\n\t\t});\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent  = function(event) {\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/dropzone.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-binary.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-binary.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-bitmap.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370;\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-bitmap.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-shortcut.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-shortcut.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-text.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/element.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/element.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/encrypt.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/encrypt.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/entity.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/entity.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fieldmangler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler({title: this.mangleTitle, tags: tag});\t\t\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fieldmangler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fields.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fields.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/image.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/importvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar self = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\taddWidgetNode({\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params\n\t\t\t\t});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/importvariables.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.key = this.getAttribute(\"key\");\n\tthis.tag = this.getAttribute(\"tag\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/keyboard.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/link.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar MISSING_LINK_CONFIG_TITLE = \"$:/config/MissingLinks\";\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.linkClasses) {\n\t\tclasses.push(this.linkClasses);\n\t}\n\tclasses.push(\"tc-tiddlylink\");\n\tif(this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t}\n\tif(this.isMissing && !this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t} else {\n\t\tif(!this.isMissing) {\n\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t}\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Set an href\n\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\",\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = ($tw.wiki.getTiddlerText(MISSING_LINK_CONFIG_TITLE,\"yes\") === \"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip || changedTiddlers[MISSING_LINK_CONFIG_TITLE]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/link.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/linkcatcher.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(this.catchTo) {\n\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.catchMessage && this.parentWidget) {\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: this.catchMessage,\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\tif(this.catchSet) {\n\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t}\n\tif(this.catchActions) {\n\t\tthis.invokeActionString(this.catchActions,this);\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/linkcatcher.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
            "title": "$:/core/modules/widgets/list.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/macrocall.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar text = this.getVariable(this.parseTreeNode.name || this.getAttribute(\"$name\"),{params: params}),\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/macrocall.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/navigator.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tvar storyList = this.getStoryList();\n\t// Quit if we cannot get hold of the story list\n\tif(!storyList) {\n\t\treturn;\n\t}\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(title);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(fromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(this.getAttribute(\"openLinkFromInsideRiver\",\"below\")) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,title);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle;\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\texistingTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\t\t\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\t\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n// \nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/navigator.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/password.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/radio.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.radioClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(this.getValue() == this.radioValue) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tif(this.radioClass !== \"\") {\n\t\tthis.radioClass += \" \";\n\t}\n\tthis.radioClass += \"tc-radio\";\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/radio.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/raw.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/raw.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/reveal.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = (this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTitle = this.state;\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state = this.stateTitle ? this.wiki.getTextReference(this.stateTitle,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.readMatchState(state);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.readMatchState(state);\n\t\t\tthis.isOpen = !this.isOpen;\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.readMatchState = function(state) {\n\tthis.isOpen = state === this.text;\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes[\"default\"] || changedAttributes.animate) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false,\n\t\t\tcurrentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\trefreshed = true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n        $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n        }});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/reveal.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/scrollable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/scrollable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/select.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\n\t\t\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/select.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/set.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(!this.setValue) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select ||changedAttributes.value || changedAttributes.emptyValue ||\n\t   (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/set.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/text.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/tiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/transclude.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/transclude.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/vars.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n  <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/vars.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/view.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified();\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function() {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function() {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function() {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/view.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/widget.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\n*/\nWidget.prototype.setVariable = function(name,value,params) {\n\tthis.variables[name] = {value: value, params: params};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n*/\nWidget.prototype.getVariable = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value;\n\t\t// Substitute any parameters specified in the definition\n\t\tvalue = this.substituteVariableParameters(value,variable.params,actualParams);\n\t\tvalue = this.substituteVariableReferences(value);\n\t\treturn value;\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn this.evaluateMacroModule(name,actualParams,options.defaultValue);\n};\n\nWidget.prototype.substituteVariableParameters = function(text,formalParams,actualParams) {\n\tif(formalParams) {\n\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\tparamInfo, paramValue;\n\t\t// Step through each of the parameters in the macro definition\n\t\tfor(var p=0; p<formalParams.length; p++) {\n\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\tparamInfo = formalParams[p];\n\t\t\tparamValue = undefined;\n\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\tnextAnonParameter++;\n\t\t\t}\n\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t}\n\t\t\t// If we've still not got a value, use the default, if any\n\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t// Replace any instances of this parameter\n\t\t\ttext = $tw.utils.replaceString(text,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(paramInfo.name) + \"\\\\$\",\"mg\"),paramValue);\n\t\t}\n\t}\n\treturn text;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.render(parent,nextSibling);\n\t});\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.refresh(changedTiddlers) || refreshed;\n\t});\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
            "title": "$:/core/modules/widgets/widget.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/wikify.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/wikify.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/wiki-bulkops.js": {
            "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
            "title": "$:/core/modules/wiki-bulkops.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/wiki.js": {
            "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type]  || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles.  Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x :  x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\n\t\t}\n\t});\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tvar currPos = titles.indexOf(title),\n\t\t\t\tnewPos = -1,\n\t\t\t\ttiddler = this.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type || \"text/vnd.tiddlywiki\",tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tliteral: If true, searches for literal string, rather than separate search terms\n\tfield: If specified, restricts the search to the specified field\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tmatch;\n\t\tfor(var t=0; t<searchTermsRegExps.length; t++) {\n\t\t\tmatch = false;\n\t\t\tif(options.field) {\n\t\t\t\tmatch = searchTermsRegExps[t].test(tiddler.getFieldString(options.field));\n\t\t\t} else {\n\t\t\t\t// Search title, tags and body\n\t\t\t\tif(contentTypeInfo.encoding === \"utf8\") {\n\t\t\t\t\tmatch = match || searchTermsRegExps[t].test(tiddler.fields.text);\n\t\t\t\t}\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.join(\"\\0\") : \"\";\n\t\t\t\tmatch = match || searchTermsRegExps[t].test(tags) || searchTermsRegExps[t].test(tiddler.fields.title);\n\t\t\t}\n\t\t\tif(!match) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(tiddler.fields.text !== undefined) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text;\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,callback) {\n\tvar result = [],\n\t\toutstanding = files.length;\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t});\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,callback) {\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create  a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n})();\n\n",
            "title": "$:/core/modules/wiki.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/palettes/Blanca": {
            "title": "$:/palettes/Blanca",
            "name": "Blanca",
            "description": "A clean white palette to let you focus",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Blue": {
            "title": "$:/palettes/Blue",
            "name": "Blue",
            "description": "A blue theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Muted": {
            "title": "$:/palettes/Muted",
            "name": "Muted",
            "description": "Bright tiddlers on a muted background",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastLight": {
            "title": "$:/palettes/ContrastLight",
            "name": "Contrast (Light)",
            "description": "High contrast and unambiguous (light version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastDark": {
            "title": "$:/palettes/ContrastDark",
            "name": "Contrast (Dark)",
            "description": "High contrast and unambiguous (dark version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/DarkPhotos": {
            "created": "20150402111612188",
            "description": "Good with dark photo backgrounds",
            "modified": "20150402112344080",
            "name": "DarkPhotos",
            "tags": "$:/tags/Palette",
            "title": "$:/palettes/DarkPhotos",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Rocker": {
            "title": "$:/palettes/Rocker",
            "name": "Rocker",
            "description": "A dark theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarFlare": {
            "title": "$:/palettes/SolarFlare",
            "name": "Solar Flare",
            "description": "Warm, relaxing earth colours",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n    download-foreground: <<colour background>>\n    dragger-foreground: <<colour background>>\n    dropdown-background: <<colour background>>\n    modal-background: <<colour background>>\n    sidebar-foreground-shadow: <<colour background>>\n    tiddler-background: <<colour background>>\n    tiddler-border: <<colour background>>\n    tiddler-link-background: <<colour background>>\n    tab-background-selected: <<colour background>>\n        dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n    dragger-background: <<colour foreground>>\n    tab-foreground: <<colour foreground>>\n        tab-foreground-selected: <<colour tab-foreground>>\n            sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n        sidebar-tab-foreground: <<colour tab-foreground>>\n    sidebar-button-foreground: <<colour foreground>>\n    sidebar-controls-foreground: <<colour foreground>>\n    sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n    alert-muted-foreground: <<colour base01>>\n: base00\n    code-foreground: <<colour base00>>\n    message-foreground: <<colour base00>>\n    tag-foreground: <<colour base00>>\n: base0\n    sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n    muted-foreground: <<colour base1>>\n        blockquote-bar: <<colour muted-foreground>>\n        dropdown-border: <<colour muted-foreground>>\n        sidebar-muted-foreground: <<colour muted-foreground>>\n        tiddler-title-foreground: <<colour muted-foreground>>\n            site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n    modal-footer-background: <<colour base2>>\n    page-background: <<colour base2>>\n        modal-backdrop: <<colour page-background>>\n        notification-background: <<colour page-background>>\n        code-background: <<colour page-background>>\n            code-border: <<colour code-background>>\n        pre-background: <<colour page-background>>\n            pre-border: <<colour pre-background>>\n        sidebar-tab-background-selected: <<colour page-background>>\n    table-header-background: <<colour base2>>\n    tag-background: <<colour base2>>\n    tiddler-editor-background: <<colour base2>>\n    tiddler-info-background: <<colour base2>>\n    tiddler-info-tab-background: <<colour base2>>\n    tab-background: <<colour base2>>\n        dropdown-tab-background: <<colour tab-background>>\n: base3\n    alert-background: <<colour base3>>\n    message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n    alert-highlight: <<colour magenta>>\n: violet\n    external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n    tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n    external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n    primary: <<colour blue-muted>>\n        download-background: <<colour primary>>\n        tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n    modal-footer-border: <<colour tab-border>>\n    modal-header-border: <<colour tab-border>>\n    notification-border: <<colour tab-border>>\n    sidebar-tab-border: <<colour tab-border>>\n    tab-border-selected: <<colour tab-border>>\n        sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n    sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Vanilla": {
            "title": "$:/palettes/Vanilla",
            "name": "Vanilla",
            "description": "Pale and unobtrusive",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/core/readme": {
            "title": "$:/core/readme",
            "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
        },
        "$:/library/sjcl.js/license": {
            "title": "$:/library/sjcl.js/license",
            "type": "text/plain",
            "text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
        },
        "$:/core/templates/MOTW.html": {
            "title": "$:/core/templates/MOTW.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)http://tiddlywiki.com -->&#13;&#10;"
        },
        "$:/core/templates/alltiddlers.template.html": {
            "title": "$:/core/templates/alltiddlers.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
        },
        "$:/core/templates/canonical-uri-external-image": {
            "title": "$:/core/templates/canonical-uri-external-image",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-text": {
            "title": "$:/core/templates/canonical-uri-external-text",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
        },
        "$:/core/templates/css-tiddler": {
            "title": "$:/core/templates/css-tiddler",
            "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
        },
        "$:/core/templates/exporters/CsvFile": {
            "title": "$:/core/templates/exporters/CsvFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/CsvFile}}",
            "extension": ".csv",
            "text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/JsonFile": {
            "title": "$:/core/templates/exporters/JsonFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/JsonFile}}",
            "extension": ".json",
            "text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/StaticRiver": {
            "title": "$:/core/templates/exporters/StaticRiver",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/StaticRiver}}",
            "extension": ".html",
            "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
        },
        "$:/core/templates/exporters/StaticRiver/Content": {
            "title": "$:/core/templates/exporters/StaticRiver/Content",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<<renderContent>>\n</$importvariables>\n"
        },
        "$:/core/templates/exporters/TidFile": {
            "title": "$:/core/templates/exporters/TidFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/TidFile}}",
            "extension": ".tid",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\"><<renderContent>></$importvariables>"
        },
        "$:/core/templates/html-div-tiddler": {
            "title": "$:/core/templates/html-div-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
        },
        "$:/core/templates/html-tiddler": {
            "title": "$:/core/templates/html-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
        },
        "$:/core/templates/javascript-tiddler": {
            "title": "$:/core/templates/javascript-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
        },
        "$:/core/templates/json-tiddler": {
            "title": "$:/core/templates/json-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
        },
        "$:/core/templates/module-tiddler": {
            "title": "$:/core/templates/module-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
        },
        "$:/core/templates/plain-text-tiddler": {
            "title": "$:/core/templates/plain-text-tiddler",
            "text": "<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/raw-static-tiddler": {
            "title": "$:/core/templates/raw-static-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
        },
        "$:/core/save/all": {
            "title": "$:/core/save/all",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/empty": {
            "title": "$:/core/save/empty",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-all": {
            "title": "$:/core/save/lazy-all",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-images": {
            "title": "$:/core/save/lazy-images",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/templates/single.tiddler.window": {
            "title": "$:/core/templates/single.tiddler.window",
            "text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n"
        },
        "$:/core/templates/split-recipe": {
            "title": "$:/core/templates/split-recipe",
            "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
        },
        "$:/core/templates/static-tiddler": {
            "title": "$:/core/templates/static-tiddler",
            "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
        },
        "$:/core/templates/static.area": {
            "title": "$:/core/templates/static.area",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n"
        },
        "$:/core/templates/static.content": {
            "title": "$:/core/templates/static.content",
            "type": "text/vnd.tiddlywiki",
            "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|http://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
        },
        "$:/core/templates/static.template.css": {
            "title": "$:/core/templates/static.template.css",
            "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
        },
        "$:/core/templates/static.template.html": {
            "title": "$:/core/templates/static.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
        },
        "$:/core/templates/static.tiddler.html": {
            "title": "$:/core/templates/static.tiddler.html",
            "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`"
        },
        "$:/core/templates/store.area.template.html": {
            "title": "$:/core/templates/store.area.template.html",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
        },
        "$:/core/templates/tid-tiddler": {
            "title": "$:/core/templates/tid-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/tiddler-metadata": {
            "title": "$:/core/templates/tiddler-metadata",
            "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
        },
        "$:/core/templates/tiddlywiki5.html": {
            "title": "$:/core/templates/tiddlywiki5.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}\n</div>\n</body>\n</html>\n"
        },
        "$:/core/templates/version": {
            "title": "$:/core/templates/version",
            "text": "<<version>>"
        },
        "$:/core/templates/wikified-tiddler": {
            "title": "$:/core/templates/wikified-tiddler",
            "text": "<$transclude />"
        },
        "$:/core/ui/AboveStory/tw2-plugin-check": {
            "title": "$:/core/ui/AboveStory/tw2-plugin-check",
            "tags": "$:/tags/AboveStory",
            "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter": {
            "title": "$:/core/ui/AdvancedSearch/Filter",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Filter/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Shadows": {
            "title": "$:/core/ui/AdvancedSearch/Shadows",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Shadows/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Standard": {
            "title": "$:/core/ui/AdvancedSearch/Standard",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Standard/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/System": {
            "title": "$:/core/ui/AdvancedSearch/System",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/System/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/AdvancedSearch": {
            "title": "$:/AdvancedSearch",
            "icon": "$:/core/images/advanced-search-button",
            "color": "#bbb",
            "text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
        },
        "$:/core/ui/AlertTemplate": {
            "title": "$:/core/ui/AlertTemplate",
            "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
        },
        "$:/core/ui/BinaryWarning": {
            "title": "$:/core/ui/BinaryWarning",
            "text": "\\define lingo-base() $:/language/BinaryWarning/\n<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\n"
        },
        "$:/core/ui/Components/plugin-info": {
            "title": "$:/core/ui/Components/plugin-info",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$reveal type=\"nomatch\" text=\"\" state=\"!!list\">\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default=\"readme\" template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=\"!!list\">\n<<lingo NoInformation/Hint>>\n</$reveal>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
        },
        "$:/core/ui/Components/tag-link": {
            "title": "$:/core/ui/Components/tag-link",
            "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
        },
        "$:/core/ui/ControlPanel/Advanced": {
            "title": "$:/core/ui/ControlPanel/Advanced",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
            "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Appearance": {
            "title": "$:/core/ui/ControlPanel/Appearance",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
            "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Basics": {
            "title": "$:/core/ui/ControlPanel/Basics",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Basics/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
        },
        "$:/core/ui/ControlPanel/EditorTypes": {
            "title": "$:/core/ui/ControlPanel/EditorTypes",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/Info": {
            "title": "$:/core/ui/ControlPanel/Info",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Info/Caption}}",
            "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/KeyboardShortcuts": {
            "title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n&times;\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[all[tiddlers+shadows][$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>prefix[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/LoadedModules": {
            "title": "$:/core/ui/ControlPanel/LoadedModules",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
        },
        "$:/core/ui/ControlPanel/Modals/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
            "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
            "text": "\\define install-plugin-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1><$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<div>\n<<plugin-library-listing>>\n</div>\n\n</$importvariables>\n"
        },
        "$:/core/ui/ControlPanel/Palette": {
            "title": "$:/core/ui/ControlPanel/Palette",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Palette/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/snippets/paletteeditor}}\n\n</$reveal>\n\n"
        },
        "$:/core/ui/ControlPanel/Parsing": {
            "title": "$:/core/ui/ControlPanel/Parsing",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
            "text": "<<display-server-assets language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
            "text": "<<display-server-assets plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
            "text": "<<display-server-assets theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green\" style=\"background:blue;\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
            "text": "<<plugin-table language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
            "text": "<<plugin-table plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
            "text": "<<plugin-table theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
        },
        "$:/core/ui/ControlPanel/Saving/DownloadSaver": {
            "title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Saving/General": {
            "title": "$:/core/ui/ControlPanel/Saving/General",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
            "list-before": "",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Saving/TiddlySpot": {
            "title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>>  |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
        },
        "$:/core/ui/ControlPanel/Saving": {
            "title": "$:/core/ui/ControlPanel/Saving",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Saving/Caption}}",
            "text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
        },
        "$:/core/buttonstyles/Borderless": {
            "title": "$:/core/buttonstyles/Borderless",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
            "text": "tc-btn-invisible"
        },
        "$:/core/buttonstyles/Boxed": {
            "title": "$:/core/buttonstyles/Boxed",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
            "text": "tc-btn-boxed"
        },
        "$:/core/buttonstyles/Rounded": {
            "title": "$:/core/buttonstyles/Rounded",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
            "text": "tc-btn-rounded"
        },
        "$:/core/ui/ControlPanel/Settings/CamelCase": {
            "title": "$:/core/ui/ControlPanel/Settings/CamelCase",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
            "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
            "title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
            "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n  <option value=\"above\"><<lingo \"OpenAbove\">></option>\n  <option value=\"below\"><<lingo \"OpenBelow\">></option>\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/MissingLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationHistory": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
            "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/TitleLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings": {
            "title": "$:/core/ui/ControlPanel/Settings",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Settings/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ControlPanel/StoryView": {
            "title": "$:/core/ui/ControlPanel/StoryView",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
            "text": "{{$:/snippets/viewswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/Theme": {
            "title": "$:/core/ui/ControlPanel/Theme",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Theme/Caption}}",
            "text": "{{$:/snippets/themeswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/TiddlerFields": {
            "title": "$:/core/ui/ControlPanel/TiddlerFields",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/PageControls": {
            "title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars": {
            "title": "$:/core/ui/ControlPanel/Toolbars",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
            "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/ControlPanel": {
            "title": "$:/ControlPanel",
            "icon": "$:/core/images/options-button",
            "color": "#bbb",
            "text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
        },
        "$:/core/ui/DefaultSearchResultList": {
            "title": "$:/core/ui/DefaultSearchResultList",
            "tags": "$:/tags/SearchResults",
            "caption": "{{$:/language/Search/DefaultResults/Caption}}",
            "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
        },
        "$:/core/ui/EditTemplate/body/preview/output": {
            "title": "$:/core/ui/EditTemplate/body/preview/output",
            "tags": "$:/tags/EditPreview",
            "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
            "text": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
        },
        "$:/core/ui/EditTemplate/body/editor": {
            "title": "$:/core/ui/EditTemplate/body/editor",
            "text": "<$edit\n\n  field=\"text\"\n  class=\"tc-edit-texteditor\"\n  placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n\n><$set\n\n  name=\"targetTiddler\"\n  value=<<currentTiddler>>\n\n><$list\n\n  filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n  type=\"nomatch\"\n  state=<<config-visibility-title>>\n  text=\"hide\"\n  class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n  tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n  mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
        },
        "$:/core/ui/EditTemplate/body/toolbar/button": {
            "title": "$:/core/ui/EditTemplate/body/toolbar/button",
            "text": "\\define toolbar-button-icon()\n<$list\n\n  filter=\"[all[current]!has[custom-icon]]\"\n  variable=\"no-custom-icon\"\n\n><$transclude\n\n  tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n  filter={{!!condition}}\n  variable=\"list-condition\"\n\n><$wikify\n\n  name=\"tooltip-text\"\n  text=<<toolbar-button-tooltip>>\n  mode=\"inline\"\n  output=\"text\"\n\n><$list\n\n  filter=\"[all[current]!has[dropdown]]\"\n  variable=\"no-dropdown\"\n\n><$button\n\n  class=\"tc-btn-invisible $(buttonClasses)$\"\n  tooltip=<<tooltip-text>>\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button></$list><$list\n\n  filter=\"[all[current]has[dropdown]]\"\n  variable=\"dropdown\"\n\n><$set\n\n  name=\"dropdown-state\"\n  value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n  popup=<<dropdown-state>>\n  class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n  selectedClass=\"tc-selected\"\n  tooltip=<<tooltip-text>>\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button><$reveal\n\n  state=<<dropdown-state>>\n  type=\"popup\"\n  position=\"below\"\n  animate=\"yes\"\n  tag=\"span\"\n\n><div\n\n  class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n  tiddler={{!!dropdown}}\n  mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n  name=\"buttonClasses\"\n  value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
        },
        "$:/core/ui/EditTemplate/body": {
            "title": "$:/core/ui/EditTemplate/body",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[is[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[is[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/EditTemplate/controls": {
            "title": "$:/core/ui/EditTemplate/controls",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/fields": {
            "title": "$:/core/ui/EditTemplate/fields",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field-inner()\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\" $name=<<name>> $value=<<value>>/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n\\end\n\n\\define new-field()\n<$set name=\"name\" value={{$:/temp/newfieldname}}>\n<$set name=\"value\" value={{$:/temp/newfieldvalue}}>\n<<new-field-inner>>\n</$set>\n</$set>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\"  variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditTemplate/shadow": {
            "title": "$:/core/ui/EditTemplate/shadow",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
        },
        "$:/core/ui/EditTemplate/tags": {
            "title": "$:/core/ui/EditTemplate/tags",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">&times;</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n\\end\n\n\\define tag-picker-actions()\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n</$list>\n</$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/title": {
            "title": "$:/core/ui/EditTemplate/title",
            "tags": "$:/tags/EditTemplate",
            "text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[is[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n\n\n"
        },
        "$:/core/ui/EditTemplate/type": {
            "title": "$:/core/ui/EditTemplate/type",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>"
        },
        "$:/core/ui/EditTemplate": {
            "title": "$:/core/ui/EditTemplate",
            "text": "\\define actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>>>\n<$fieldmangler>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\n</$fieldmangler>\n</div>\n"
        },
        "$:/core/ui/Buttons/cancel": {
            "title": "$:/core/ui/Buttons/cancel",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
            "description": "{{$:/language/Buttons/Cancel/Hint}}",
            "text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/delete": {
            "title": "$:/core/ui/Buttons/delete",
            "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
            "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
            "description": "{{$:/language/Buttons/Delete/Hint}}",
            "text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save": {
            "title": "$:/core/ui/Buttons/save",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
            "description": "{{$:/language/Buttons/Save/Hint}}",
            "text": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditorToolbar/bold": {
            "title": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}}",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/clear-dropdown": {
            "title": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/clear": {
            "title": "$:/core/ui/EditorToolbar/clear",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/erase",
            "caption": "{{$:/language/Buttons/Clear/Caption}}",
            "description": "{{$:/language/Buttons/Clear/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/editor-height-dropdown": {
            "title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
        },
        "$:/core/ui/EditorToolbar/editor-height": {
            "title": "$:/core/ui/EditorToolbar/editor-height",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/fixed-height",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
            "description": "{{$:/language/Buttons/EditorHeight/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/excise-dropdown": {
            "title": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/excise": {
            "title": "$:/core/ui/EditorToolbar/excise",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/excise",
            "caption": "{{$:/language/Buttons/Excise/Caption}}",
            "description": "{{$:/language/Buttons/Excise/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "shortcuts": "((excise))",
            "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/heading-1": {
            "title": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}}",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-2": {
            "title": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}}",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-3": {
            "title": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}}",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}}",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}}",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}}",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/italic": {
            "title": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}}",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/line-width-dropdown": {
            "title": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/line-width": {
            "title": "$:/core/ui/EditorToolbar/line-width",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/line-width",
            "caption": "{{$:/language/Buttons/LineWidth/Caption}}",
            "description": "{{$:/language/Buttons/LineWidth/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
        },
        "$:/core/ui/EditorToolbar/link-dropdown": {
            "title": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define link-actions()\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"make-link\"\n\ttext={{$(linkTiddler)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(searchTiddler)$}}\n/>\n{{$:/core/images/chevron-right}}\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n</$button>\n\\end\n\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
        },
        "$:/core/ui/EditorToolbar/link": {
            "title": "$:/core/ui/EditorToolbar/link",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/link",
            "caption": "{{$:/language/Buttons/Link/Caption}}",
            "description": "{{$:/language/Buttons/Link/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((link))",
            "dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/list-bullet": {
            "title": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}}",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-number": {
            "title": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}}",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-block": {
            "title": "$:/core/ui/EditorToolbar/mono-block",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-block",
            "caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
            "description": "{{$:/language/Buttons/MonoBlock/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((mono-block))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-line": {
            "title": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}}",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/more-dropdown": {
            "title": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/more": {
            "title": "$:/core/ui/EditorToolbar/more",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/down-arrow",
            "caption": "{{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "condition": "[<targetTiddler>]",
            "dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/opacity-dropdown": {
            "title": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/opacity": {
            "title": "$:/core/ui/EditorToolbar/opacity",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/opacity",
            "caption": "{{$:/language/Buttons/Opacity/Caption}}",
            "description": "{{$:/language/Buttons/Opacity/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
        },
        "$:/core/ui/EditorToolbar/paint-dropdown": {
            "title": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/paint": {
            "title": "$:/core/ui/EditorToolbar/paint",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/paint",
            "caption": "{{$:/language/Buttons/Paint/Caption}}",
            "description": "{{$:/language/Buttons/Paint/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/picture-dropdown": {
            "title": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/picture": {
            "title": "$:/core/ui/EditorToolbar/picture",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/picture",
            "caption": "{{$:/language/Buttons/Picture/Caption}}",
            "description": "{{$:/language/Buttons/Picture/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((picture))",
            "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/preview-type-dropdown": {
            "title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
            "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/preview-type": {
            "title": "$:/core/ui/EditorToolbar/preview-type",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/chevron-down",
            "caption": "{{$:/language/Buttons/PreviewType/Caption}}",
            "description": "{{$:/language/Buttons/PreviewType/Hint}}",
            "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
            "button-classes": "tc-text-editor-toolbar-item-adjunct",
            "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
        },
        "$:/core/ui/EditorToolbar/preview": {
            "title": "$:/core/ui/EditorToolbar/preview",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/preview-open",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/Preview/Caption}}",
            "description": "{{$:/language/Buttons/Preview/Hint}}",
            "condition": "[<targetTiddler>]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((preview))",
            "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/quote": {
            "title": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}}",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/size-dropdown": {
            "title": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> &times; <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/size": {
            "title": "$:/core/ui/EditorToolbar/size",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/size",
            "caption": "{{$:/language/Buttons/Size/Caption}}",
            "description": "{{$:/language/Buttons/Size/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/stamp-dropdown": {
            "title": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
        },
        "$:/core/ui/EditorToolbar/stamp": {
            "title": "$:/core/ui/EditorToolbar/stamp",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/stamp",
            "caption": "{{$:/language/Buttons/Stamp/Caption}}",
            "description": "{{$:/language/Buttons/Stamp/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "shortcuts": "((stamp))",
            "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/strikethrough": {
            "title": "$:/core/ui/EditorToolbar/strikethrough",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/strikethrough",
            "caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
            "description": "{{$:/language/Buttons/Strikethrough/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((strikethrough))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/subscript": {
            "title": "$:/core/ui/EditorToolbar/subscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/subscript",
            "caption": "{{$:/language/Buttons/Subscript/Caption}}",
            "description": "{{$:/language/Buttons/Subscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((subscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/superscript": {
            "title": "$:/core/ui/EditorToolbar/superscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/superscript",
            "caption": "{{$:/language/Buttons/Superscript/Caption}}",
            "description": "{{$:/language/Buttons/Superscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((superscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/underline": {
            "title": "$:/core/ui/EditorToolbar/underline",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/underline",
            "caption": "{{$:/language/Buttons/Underline/Caption}}",
            "description": "{{$:/language/Buttons/Underline/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((underline))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
        },
        "$:/core/Filters/AllTags": {
            "title": "$:/core/Filters/AllTags",
            "tags": "$:/tags/Filter",
            "filter": "[tags[]!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTags}}",
            "text": ""
        },
        "$:/core/Filters/AllTiddlers": {
            "title": "$:/core/Filters/AllTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/Drafts": {
            "title": "$:/core/Filters/Drafts",
            "tags": "$:/tags/Filter",
            "filter": "[has[draft.of]sort[title]]",
            "description": "{{$:/language/Filters/Drafts}}",
            "text": ""
        },
        "$:/core/Filters/Missing": {
            "title": "$:/core/Filters/Missing",
            "tags": "$:/tags/Filter",
            "filter": "[all[missing]sort[title]]",
            "description": "{{$:/language/Filters/Missing}}",
            "text": ""
        },
        "$:/core/Filters/Orphans": {
            "title": "$:/core/Filters/Orphans",
            "tags": "$:/tags/Filter",
            "filter": "[all[orphans]sort[title]]",
            "description": "{{$:/language/Filters/Orphans}}",
            "text": ""
        },
        "$:/core/Filters/OverriddenShadowTiddlers": {
            "title": "$:/core/Filters/OverriddenShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[shadow]]",
            "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentSystemTiddlers": {
            "title": "$:/core/Filters/RecentSystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentSystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentTiddlers": {
            "title": "$:/core/Filters/RecentTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/ShadowTiddlers": {
            "title": "$:/core/Filters/ShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows]sort[title]]",
            "description": "{{$:/language/Filters/ShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/StoryList": {
            "title": "$:/core/Filters/StoryList",
            "tags": "$:/tags/Filter",
            "filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
            "description": "{{$:/language/Filters/StoryList}}",
            "text": ""
        },
        "$:/core/Filters/SystemTags": {
            "title": "$:/core/Filters/SystemTags",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTags}}",
            "text": ""
        },
        "$:/core/Filters/SystemTiddlers": {
            "title": "$:/core/Filters/SystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/TypedTiddlers": {
            "title": "$:/core/Filters/TypedTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Filters/TypedTiddlers}}",
            "text": ""
        },
        "$:/core/ui/ImportListing": {
            "title": "$:/core/ui/ImportListing",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>>>\n<$transclude subtiddler=<<payloadTiddler>> mode=\"block\"/>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ListItemTemplate": {
            "title": "$:/core/ui/ListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>"
        },
        "$:/Manager/ItemMain/Fields": {
            "title": "$:/Manager/ItemMain/Fields",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/Fields}}",
            "text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/Manager/ItemMain/RawText": {
            "title": "$:/Manager/ItemMain/RawText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/RawText}}",
            "text": "<pre><code><$view/></code></pre>\n"
        },
        "$:/Manager/ItemMain/WikifiedText": {
            "title": "$:/Manager/ItemMain/WikifiedText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/WikifiedText}}",
            "text": "<$transclude mode=\"block\"/>\n"
        },
        "$:/Manager/ItemSidebar/Colour": {
            "title": "$:/Manager/ItemSidebar/Colour",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Colour}}",
            "text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Icon": {
            "title": "$:/Manager/ItemSidebar/Icon",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Icon}}",
            "text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tags": {
            "title": "$:/Manager/ItemSidebar/Tags",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tags}}",
            "text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[is[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tools": {
            "title": "$:/Manager/ItemSidebar/Tools",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tools}}",
            "text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
        },
        "$:/Manager": {
            "title": "$:/Manager",
            "icon": "$:/core/images/list",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
        },
        "$:/core/ui/MissingTemplate": {
            "title": "$:/core/ui/MissingTemplate",
            "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
        },
        "$:/core/ui/MoreSideBar/All": {
            "title": "$:/core/ui/MoreSideBar/All",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/All/Caption}}",
            "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Drafts": {
            "title": "$:/core/ui/MoreSideBar/Drafts",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Drafts/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Missing": {
            "title": "$:/core/ui/MoreSideBar/Missing",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Missing/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Orphans": {
            "title": "$:/core/ui/MoreSideBar/Orphans",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Orphans/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
        },
        "$:/core/ui/MoreSideBar/Recent": {
            "title": "$:/core/ui/MoreSideBar/Recent",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Shadows": {
            "title": "$:/core/ui/MoreSideBar/Shadows",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Shadows/Caption}}",
            "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/System": {
            "title": "$:/core/ui/MoreSideBar/System",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/System/Caption}}",
            "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Tags": {
            "title": "$:/core/ui/MoreSideBar/Tags",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Tags/Caption}}",
            "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
        },
        "$:/core/ui/MoreSideBar/Types": {
            "title": "$:/core/ui/MoreSideBar/Types",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Types/Caption}}",
            "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Languages": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Languages",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Theme": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Theme",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/Buttons/advanced-search": {
            "title": "$:/core/ui/Buttons/advanced-search",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
            "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/close-all": {
            "title": "$:/core/ui/Buttons/close-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
            "description": "{{$:/language/Buttons/CloseAll/Hint}}",
            "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/control-panel": {
            "title": "$:/core/ui/Buttons/control-panel",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
            "description": "{{$:/language/Buttons/ControlPanel/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/encryption": {
            "title": "$:/core/ui/Buttons/encryption",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
            "description": "{{$:/language/Buttons/Encryption/Hint}}",
            "text": "<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/core/ui/Buttons/export-page": {
            "title": "$:/core/ui/Buttons/export-page",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
            "description": "{{$:/language/Buttons/ExportPage/Hint}}",
            "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
        },
        "$:/core/ui/Buttons/fold-all": {
            "title": "$:/core/ui/Buttons/fold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
            "description": "{{$:/language/Buttons/FoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/full-screen": {
            "title": "$:/core/ui/Buttons/full-screen",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
            "description": "{{$:/language/Buttons/FullScreen/Hint}}",
            "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/home": {
            "title": "$:/core/ui/Buttons/home",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
            "description": "{{$:/language/Buttons/Home/Hint}}",
            "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/import": {
            "title": "$:/core/ui/Buttons/import",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
            "description": "{{$:/language/Buttons/Import/Hint}}",
            "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
        },
        "$:/core/ui/Buttons/language": {
            "title": "$:/core/ui/Buttons/language",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
            "description": "{{$:/language/Buttons/Language/Hint}}",
            "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down tc-drop-down-language-chooser\">\n<$linkcatcher to=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$link>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/language\" text=<<currentTiddler>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/language\" text=<<currentTiddler>>>\n&nbsp;\n</$reveal>\n</span>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/manager": {
            "title": "$:/core/ui/Buttons/manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
            "description": "{{$:/language/Buttons/Manager/Hint}}",
            "text": "\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/core/ui/Buttons/more-page-actions",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-image": {
            "title": "$:/core/ui/Buttons/new-image",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
            "description": "{{$:/language/Buttons/NewImage/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"image/jpeg\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/new-journal": {
            "title": "$:/core/ui/Buttons/new-journal",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
            "description": "{{$:/language/Buttons/NewJournal/Hint}}",
            "text": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=\"$(journalTags)$\" text=\"$(journalText)$\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"journalText\" value={{$:/config/NewJournal/Text}}>\n<<journalButton>>\n</$set></$set></$set>"
        },
        "$:/core/ui/Buttons/new-tiddler": {
            "title": "$:/core/ui/Buttons/new-tiddler",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
            "description": "{{$:/language/Buttons/NewTiddler/Hint}}",
            "text": "<$button message=\"tm-new-tiddler\" tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/palette": {
            "title": "$:/core/ui/Buttons/palette",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
            "description": "{{$:/language/Buttons/Palette/Hint}}",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/print": {
            "title": "$:/core/ui/Buttons/print",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
            "description": "{{$:/language/Buttons/Print/Hint}}",
            "text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/refresh": {
            "title": "$:/core/ui/Buttons/refresh",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
            "description": "{{$:/language/Buttons/Refresh/Hint}}",
            "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save-wiki": {
            "title": "$:/core/ui/Buttons/save-wiki",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
            "description": "{{$:/language/Buttons/SaveWiki/Hint}}",
            "text": "<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
        },
        "$:/core/ui/Buttons/storyview": {
            "title": "$:/core/ui/Buttons/storyview",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
            "description": "{{$:/language/Buttons/StoryView/Hint}}",
            "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/view\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$link to=<<storyview>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/view\" text=<<storyview>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/view\" text=<<storyview>>>\n&nbsp;\n</$reveal>\n</span>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/></$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/tag-manager": {
            "title": "$:/core/ui/Buttons/tag-manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
            "description": "{{$:/language/Buttons/TagManager/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/theme": {
            "title": "$:/core/ui/Buttons/theme",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
            "description": "{{$:/language/Buttons/Theme/Hint}}",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\" variable=\"themeTitle\">\n<$link to=<<themeTitle>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/theme\" text=<<themeTitle>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/theme\" text=<<themeTitle>>>\n&nbsp;\n</$reveal>\n</span>\n<$view tiddler=<<themeTitle>> field=\"name\"/>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/timestamp": {
            "title": "$:/core/ui/Buttons/timestamp",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
            "description": "{{$:/language/Buttons/Timestamp/Hint}}",
            "text": "<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/core/ui/Buttons/unfold-all": {
            "title": "$:/core/ui/Buttons/unfold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
            "description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/PageTemplate/pagecontrols": {
            "title": "$:/core/ui/PageTemplate/pagecontrols",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$reveal>\n</$list>\n</div>\n\n"
        },
        "$:/core/ui/PageStylesheet": {
            "title": "$:/core/ui/PageStylesheet",
            "text": "<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
        },
        "$:/core/ui/PageTemplate/alerts": {
            "title": "$:/core/ui/PageTemplate/alerts",
            "tags": "$:/tags/PageTemplate",
            "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
        },
        "$:/core/ui/PageTemplate/pluginreloadwarning": {
            "title": "$:/core/ui/PageTemplate/pluginreloadwarning",
            "tags": "$:/tags/PageTemplate",
            "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate",
            "text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n\n<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>"
        },
        "$:/core/ui/PageTemplate/story": {
            "title": "$:/core/ui/PageTemplate/story",
            "tags": "$:/tags/PageTemplate",
            "text": "<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
        },
        "$:/core/ui/PageTemplate/topleftbar": {
            "title": "$:/core/ui/PageTemplate/topleftbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate/toprightbar": {
            "title": "$:/core/ui/PageTemplate/toprightbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate": {
            "title": "$:/core/ui/PageTemplate",
            "text": "\\define containerClasses()\ntc-page-container tc-page-view-$(themeTitle)$ tc-language-$(languageTitle)$\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
        },
        "$:/core/ui/PluginInfo": {
            "title": "$:/core/ui/PluginInfo",
            "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
        },
        "$:/core/ui/PluginInfo/Default/contents": {
            "title": "$:/core/ui/PluginInfo/Default/contents",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n"
        },
        "$:/core/ui/PluginListItemTemplate": {
            "title": "$:/core/ui/PluginListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"description\">\n<$view field=\"title\"/>\n</$view>\n</$link>\n</div>"
        },
        "$:/core/ui/SearchResults": {
            "title": "$:/core/ui/SearchResults",
            "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
        },
        "$:/core/ui/SideBar/More": {
            "title": "$:/core/ui/SideBar/More",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/More/Caption}}",
            "text": "<div class=\"tc-more-sidebar\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Tags\" \"$:/state/tab/moresidebar\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/core/ui/SideBar/Open": {
            "title": "$:/core/ui/SideBar/Open",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Open/Caption}}",
            "text": "\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=\"$:/StoryList\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n<div style=\"position: relative;\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">&times;</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$droppable>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\n</$droppable>\n</$tiddler>\n"
        },
        "$:/core/ui/SideBar/Recent": {
            "title": "$:/core/ui/SideBar/Recent",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/SideBar/Tools": {
            "title": "$:/core/ui/SideBar/Tools",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/SideBarLists": {
            "title": "$:/core/ui/SideBarLists",
            "text": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search{$(searchTiddler)$}]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n"
        },
        "$:/TagManager": {
            "title": "$:/TagManager",
            "icon": "$:/core/images/tag-button",
            "color": "#bbb",
            "caption": "{{$:/language/TagManager/Caption}}",
            "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/icon/$title$\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/icon/$title$\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$title$!!icon\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define qualifyTitle(title)\n$title$$(currentTiddler)$\n\\end\n\\define toggleButton(state)\n<$reveal state=\"$state$\" type=\"match\" text=\"closed\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal state=\"$state$\" type=\"match\" text=\"open\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td><$macrocall $name=\"tag\" tag=<<currentTiddler>>/></td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state=<<qualifyTitle \"$:/state/tag-manager/\">> /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal state=<<qualifyTitle \"$:/state/tag-manager/\">> type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td>\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TagTemplate": {
            "title": "$:/core/ui/TagTemplate",
            "text": "<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
        },
        "$:/core/ui/TiddlerFieldTemplate": {
            "title": "$:/core/ui/TiddlerFieldTemplate",
            "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
        },
        "$:/core/ui/TiddlerFields": {
            "title": "$:/core/ui/TiddlerFields",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced": {
            "title": "$:/core/ui/TiddlerInfo/Advanced",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
            "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Fields": {
            "title": "$:/core/ui/TiddlerInfo/Fields",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
            "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/List": {
            "title": "$:/core/ui/TiddlerInfo/List",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/List/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Listed": {
            "title": "$:/core/ui/TiddlerInfo/Listed",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/References": {
            "title": "$:/core/ui/TiddlerInfo/References",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/References/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Tagging": {
            "title": "$:/core/ui/TiddlerInfo/Tagging",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Tools": {
            "title": "$:/core/ui/TiddlerInfo/Tools",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo": {
            "title": "$:/core/ui/TiddlerInfo",
            "text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
        },
        "$:/core/ui/TopBar/menu": {
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar",
            "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n"
        },
        "$:/core/ui/UntaggedTemplate": {
            "title": "$:/core/ui/UntaggedTemplate",
            "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/body": {
            "title": "$:/core/ui/ViewTemplate/body",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/classic": {
            "title": "$:/core/ui/ViewTemplate/classic",
            "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/import": {
            "title": "$:/core/ui/ViewTemplate/import",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define lingo-base() $:/language/Import/\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n{{||$:/core/ui/ImportListing}}\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/plugin": {
            "title": "$:/core/ui/ViewTemplate/plugin",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/subtitle": {
            "title": "$:/core/ui/ViewTemplate/subtitle",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/tags": {
            "title": "$:/core/ui/ViewTemplate/tags",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/title": {
            "title": "$:/core/ui/ViewTemplate/title",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo\"/>\n\n</$reveal>\n</div>"
        },
        "$:/core/ui/ViewTemplate/unfold": {
            "title": "$:/core/ui/ViewTemplate/unfold",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate": {
            "title": "$:/core/ui/ViewTemplate",
            "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$set name=\"storyTiddler\" value=<<currentTiddler>>><$set name=\"tiddlerInfoState\" value=<<qualify \"$:/state/popup/tiddler-info\">>><$tiddler tiddler=<<currentTiddler>>><div class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$set></$set>\n"
        },
        "$:/core/ui/Buttons/clone": {
            "title": "$:/core/ui/Buttons/clone",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
            "description": "{{$:/language/Buttons/Clone/Hint}}",
            "text": "<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Clone/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close-others": {
            "title": "$:/core/ui/Buttons/close-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
            "description": "{{$:/language/Buttons/CloseOthers/Hint}}",
            "text": "<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseOthers/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close": {
            "title": "$:/core/ui/Buttons/close",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
            "description": "{{$:/language/Buttons/Close/Hint}}",
            "text": "<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Close/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/edit": {
            "title": "$:/core/ui/Buttons/edit",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
            "description": "{{$:/language/Buttons/Edit/Hint}}",
            "text": "<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Edit/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/core/ui/Buttons/export-tiddler",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
            "description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
            "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
        },
        "$:/core/ui/Buttons/fold-bar": {
            "title": "$:/core/ui/Buttons/fold-bar",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
            "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
            "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
        },
        "$:/core/ui/Buttons/fold-others": {
            "title": "$:/core/ui/Buttons/fold-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
            "description": "{{$:/language/Buttons/FoldOthers/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldOthers/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/fold": {
            "title": "$:/core/ui/Buttons/fold",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
            "description": "{{$:/language/Buttons/Fold/Hint}}",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal><$reveal type=\"match\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal>"
        },
        "$:/core/ui/Buttons/info": {
            "title": "$:/core/ui/Buttons/info",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
            "description": "{{$:/language/Buttons/Info/Hint}}",
            "text": "\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Info/Caption}}/></span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
        },
        "$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/core/ui/Buttons/more-tiddler-actions",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-here": {
            "title": "$:/core/ui/Buttons/new-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
            "description": "{{$:/language/Buttons/NewHere/Hint}}",
            "text": "\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>"
        },
        "$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/core/ui/Buttons/new-journal-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
            "description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
            "text": "\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournalHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set></$set></$set>"
        },
        "$:/core/ui/Buttons/open-window": {
            "title": "$:/core/ui/Buttons/open-window",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
            "description": "{{$:/language/Buttons/OpenWindow/Hint}}",
            "text": "<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/OpenWindow/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permalink": {
            "title": "$:/core/ui/Buttons/permalink",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
            "description": "{{$:/language/Buttons/Permalink/Hint}}",
            "text": "<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permalink/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permaview": {
            "title": "$:/core/ui/Buttons/permaview",
            "tags": "$:/tags/ViewToolbar $:/tags/PageControls",
            "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
            "description": "{{$:/language/Buttons/Permaview/Hint}}",
            "text": "<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permaview/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/DefaultTiddlers": {
            "title": "$:/DefaultTiddlers",
            "text": "GettingStarted\n"
        },
        "$:/temp/advancedsearch": {
            "title": "$:/temp/advancedsearch",
            "text": ""
        },
        "$:/snippets/allfields": {
            "title": "$:/snippets/allfields",
            "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
        },
        "$:/config/AnimationDuration": {
            "title": "$:/config/AnimationDuration",
            "text": "400"
        },
        "$:/config/AutoSave": {
            "title": "$:/config/AutoSave",
            "text": "yes"
        },
        "$:/config/BitmapEditor/Colour": {
            "title": "$:/config/BitmapEditor/Colour",
            "text": "#444"
        },
        "$:/config/BitmapEditor/ImageSizes": {
            "title": "$:/config/BitmapEditor/ImageSizes",
            "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
        },
        "$:/config/BitmapEditor/LineWidth": {
            "title": "$:/config/BitmapEditor/LineWidth",
            "text": "3px"
        },
        "$:/config/BitmapEditor/LineWidths": {
            "title": "$:/config/BitmapEditor/LineWidths",
            "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
        },
        "$:/config/BitmapEditor/Opacities": {
            "title": "$:/config/BitmapEditor/Opacities",
            "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
        },
        "$:/config/BitmapEditor/Opacity": {
            "title": "$:/config/BitmapEditor/Opacity",
            "text": "1.0"
        },
        "$:/config/DefaultSidebarTab": {
            "title": "$:/config/DefaultSidebarTab",
            "text": "$:/core/ui/SideBar/Open"
        },
        "$:/config/DownloadSaver/AutoSave": {
            "title": "$:/config/DownloadSaver/AutoSave",
            "text": "no"
        },
        "$:/config/Drafts/TypingTimeout": {
            "title": "$:/config/Drafts/TypingTimeout",
            "text": "400"
        },
        "$:/config/EditTemplateFields/Visibility/title": {
            "title": "$:/config/EditTemplateFields/Visibility/title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/tags": {
            "title": "$:/config/EditTemplateFields/Visibility/tags",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/text": {
            "title": "$:/config/EditTemplateFields/Visibility/text",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/creator": {
            "title": "$:/config/EditTemplateFields/Visibility/creator",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/created": {
            "title": "$:/config/EditTemplateFields/Visibility/created",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modified": {
            "title": "$:/config/EditTemplateFields/Visibility/modified",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modifier": {
            "title": "$:/config/EditTemplateFields/Visibility/modifier",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/type": {
            "title": "$:/config/EditTemplateFields/Visibility/type",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.title": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.of": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.of",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/revision": {
            "title": "$:/config/EditTemplateFields/Visibility/revision",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/bag": {
            "title": "$:/config/EditTemplateFields/Visibility/bag",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
            "text": "hide"
        },
        "$:/config/EditorTypeMappings/image/gif": {
            "title": "$:/config/EditorTypeMappings/image/gif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpeg": {
            "title": "$:/config/EditorTypeMappings/image/jpeg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpg": {
            "title": "$:/config/EditorTypeMappings/image/jpg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/png": {
            "title": "$:/config/EditorTypeMappings/image/png",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/x-icon": {
            "title": "$:/config/EditorTypeMappings/image/x-icon",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
            "text": "text"
        },
        "$:/config/Manager/Show": {
            "title": "$:/config/Manager/Show",
            "text": "tiddlers"
        },
        "$:/config/Manager/Filter": {
            "title": "$:/config/Manager/Filter",
            "text": ""
        },
        "$:/config/Manager/Order": {
            "title": "$:/config/Manager/Order",
            "text": "forward"
        },
        "$:/config/Manager/Sort": {
            "title": "$:/config/Manager/Sort",
            "text": "title"
        },
        "$:/config/Manager/System": {
            "title": "$:/config/Manager/System",
            "text": "system"
        },
        "$:/config/Manager/Tag": {
            "title": "$:/config/Manager/Tag",
            "text": ""
        },
        "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
            "title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
            "text": "hide"
        },
        "$:/config/MissingLinks": {
            "title": "$:/config/MissingLinks",
            "text": "yes"
        },
        "$:/config/Navigation/UpdateAddressBar": {
            "title": "$:/config/Navigation/UpdateAddressBar",
            "text": "no"
        },
        "$:/config/Navigation/UpdateHistory": {
            "title": "$:/config/Navigation/UpdateHistory",
            "text": "no"
        },
        "$:/config/OfficialPluginLibrary": {
            "title": "$:/config/OfficialPluginLibrary",
            "tags": "$:/tags/PluginLibrary",
            "url": "http://tiddlywiki.com/library/v5.1.14/index.html",
            "caption": "{{$:/language/OfficialPluginLibrary}}",
            "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
        },
        "$:/config/Navigation/openLinkFromInsideRiver": {
            "title": "$:/config/Navigation/openLinkFromInsideRiver",
            "text": "below"
        },
        "$:/config/Navigation/openLinkFromOutsideRiver": {
            "title": "$:/config/Navigation/openLinkFromOutsideRiver",
            "text": "top"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
            "text": "hide"
        },
        "$:/config/Performance/Instrumentation": {
            "title": "$:/config/Performance/Instrumentation",
            "text": "no"
        },
        "$:/config/SaveWikiButton/Template": {
            "title": "$:/config/SaveWikiButton/Template",
            "text": "$:/core/save/all"
        },
        "$:/config/SaverFilter": {
            "title": "$:/config/SaverFilter",
            "text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/Search/AutoFocus": {
            "title": "$:/config/Search/AutoFocus",
            "text": "true"
        },
        "$:/config/Search/MinLength": {
            "title": "$:/config/Search/MinLength",
            "text": "3"
        },
        "$:/config/SearchResults/Default": {
            "title": "$:/config/SearchResults/Default",
            "text": "$:/core/ui/DefaultSearchResultList"
        },
        "$:/config/ShortcutInfo/bold": {
            "title": "$:/config/ShortcutInfo/bold",
            "text": "{{$:/language/Buttons/Bold/Hint}}"
        },
        "$:/config/ShortcutInfo/cancel-edit-tiddler": {
            "title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
            "text": "{{$:/language/Buttons/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/excise": {
            "title": "$:/config/ShortcutInfo/excise",
            "text": "{{$:/language/Buttons/Excise/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-1": {
            "title": "$:/config/ShortcutInfo/heading-1",
            "text": "{{$:/language/Buttons/Heading1/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-2": {
            "title": "$:/config/ShortcutInfo/heading-2",
            "text": "{{$:/language/Buttons/Heading2/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-3": {
            "title": "$:/config/ShortcutInfo/heading-3",
            "text": "{{$:/language/Buttons/Heading3/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-4": {
            "title": "$:/config/ShortcutInfo/heading-4",
            "text": "{{$:/language/Buttons/Heading4/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-5": {
            "title": "$:/config/ShortcutInfo/heading-5",
            "text": "{{$:/language/Buttons/Heading5/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-6": {
            "title": "$:/config/ShortcutInfo/heading-6",
            "text": "{{$:/language/Buttons/Heading6/Hint}}"
        },
        "$:/config/ShortcutInfo/italic": {
            "title": "$:/config/ShortcutInfo/italic",
            "text": "{{$:/language/Buttons/Italic/Hint}}"
        },
        "$:/config/ShortcutInfo/link": {
            "title": "$:/config/ShortcutInfo/link",
            "text": "{{$:/language/Buttons/Link/Hint}}"
        },
        "$:/config/ShortcutInfo/list-bullet": {
            "title": "$:/config/ShortcutInfo/list-bullet",
            "text": "{{$:/language/Buttons/ListBullet/Hint}}"
        },
        "$:/config/ShortcutInfo/list-number": {
            "title": "$:/config/ShortcutInfo/list-number",
            "text": "{{$:/language/Buttons/ListNumber/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-block": {
            "title": "$:/config/ShortcutInfo/mono-block",
            "text": "{{$:/language/Buttons/MonoBlock/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-line": {
            "title": "$:/config/ShortcutInfo/mono-line",
            "text": "{{$:/language/Buttons/MonoLine/Hint}}"
        },
        "$:/config/ShortcutInfo/picture": {
            "title": "$:/config/ShortcutInfo/picture",
            "text": "{{$:/language/Buttons/Picture/Hint}}"
        },
        "$:/config/ShortcutInfo/preview": {
            "title": "$:/config/ShortcutInfo/preview",
            "text": "{{$:/language/Buttons/Preview/Hint}}"
        },
        "$:/config/ShortcutInfo/quote": {
            "title": "$:/config/ShortcutInfo/quote",
            "text": "{{$:/language/Buttons/Quote/Hint}}"
        },
        "$:/config/ShortcutInfo/save-tiddler": {
            "title": "$:/config/ShortcutInfo/save-tiddler",
            "text": "{{$:/language/Buttons/Save/Hint}}"
        },
        "$:/config/ShortcutInfo/stamp": {
            "title": "$:/config/ShortcutInfo/stamp",
            "text": "{{$:/language/Buttons/Stamp/Hint}}"
        },
        "$:/config/ShortcutInfo/strikethrough": {
            "title": "$:/config/ShortcutInfo/strikethrough",
            "text": "{{$:/language/Buttons/Strikethrough/Hint}}"
        },
        "$:/config/ShortcutInfo/subscript": {
            "title": "$:/config/ShortcutInfo/subscript",
            "text": "{{$:/language/Buttons/Subscript/Hint}}"
        },
        "$:/config/ShortcutInfo/superscript": {
            "title": "$:/config/ShortcutInfo/superscript",
            "text": "{{$:/language/Buttons/Superscript/Hint}}"
        },
        "$:/config/ShortcutInfo/underline": {
            "title": "$:/config/ShortcutInfo/underline",
            "text": "{{$:/language/Buttons/Underline/Hint}}"
        },
        "$:/config/SyncFilter": {
            "title": "$:/config/SyncFilter",
            "text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/TextEditor/EditorHeight/Height": {
            "title": "$:/config/TextEditor/EditorHeight/Height",
            "text": "400px"
        },
        "$:/config/TextEditor/EditorHeight/Mode": {
            "title": "$:/config/TextEditor/EditorHeight/Mode",
            "text": "auto"
        },
        "$:/config/TiddlerInfo/Default": {
            "title": "$:/config/TiddlerInfo/Default",
            "text": "$:/core/ui/TiddlerInfo/Fields"
        },
        "$:/config/TiddlerInfo/Mode": {
            "title": "$:/config/TiddlerInfo/Mode",
            "text": "popup"
        },
        "$:/config/Tiddlers/TitleLinks": {
            "title": "$:/config/Tiddlers/TitleLinks",
            "text": "no"
        },
        "$:/config/Toolbar/ButtonClass": {
            "title": "$:/config/Toolbar/ButtonClass",
            "text": "tc-btn-invisible"
        },
        "$:/config/Toolbar/Icons": {
            "title": "$:/config/Toolbar/Icons",
            "text": "yes"
        },
        "$:/config/Toolbar/Text": {
            "title": "$:/config/Toolbar/Text",
            "text": "no"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
            "text": "show"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
            "text": "hide"
        },
        "$:/config/shortcuts-mac/bold": {
            "title": "$:/config/shortcuts-mac/bold",
            "text": "meta-B"
        },
        "$:/config/shortcuts-mac/italic": {
            "title": "$:/config/shortcuts-mac/italic",
            "text": "meta-I"
        },
        "$:/config/shortcuts-mac/underline": {
            "title": "$:/config/shortcuts-mac/underline",
            "text": "meta-U"
        },
        "$:/config/shortcuts-not-mac/bold": {
            "title": "$:/config/shortcuts-not-mac/bold",
            "text": "ctrl-B"
        },
        "$:/config/shortcuts-not-mac/italic": {
            "title": "$:/config/shortcuts-not-mac/italic",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-not-mac/underline": {
            "title": "$:/config/shortcuts-not-mac/underline",
            "text": "ctrl-U"
        },
        "$:/config/shortcuts/cancel-edit-tiddler": {
            "title": "$:/config/shortcuts/cancel-edit-tiddler",
            "text": "escape"
        },
        "$:/config/shortcuts/excise": {
            "title": "$:/config/shortcuts/excise",
            "text": "ctrl-E"
        },
        "$:/config/shortcuts/heading-1": {
            "title": "$:/config/shortcuts/heading-1",
            "text": "ctrl-1"
        },
        "$:/config/shortcuts/heading-2": {
            "title": "$:/config/shortcuts/heading-2",
            "text": "ctrl-2"
        },
        "$:/config/shortcuts/heading-3": {
            "title": "$:/config/shortcuts/heading-3",
            "text": "ctrl-3"
        },
        "$:/config/shortcuts/heading-4": {
            "title": "$:/config/shortcuts/heading-4",
            "text": "ctrl-4"
        },
        "$:/config/shortcuts/heading-5": {
            "title": "$:/config/shortcuts/heading-5",
            "text": "ctrl-5"
        },
        "$:/config/shortcuts/heading-6": {
            "title": "$:/config/shortcuts/heading-6",
            "text": "ctrl-6"
        },
        "$:/config/shortcuts/link": {
            "title": "$:/config/shortcuts/link",
            "text": "ctrl-L"
        },
        "$:/config/shortcuts/list-bullet": {
            "title": "$:/config/shortcuts/list-bullet",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/list-number": {
            "title": "$:/config/shortcuts/list-number",
            "text": "ctrl-shift-N"
        },
        "$:/config/shortcuts/mono-block": {
            "title": "$:/config/shortcuts/mono-block",
            "text": "ctrl-shift-M"
        },
        "$:/config/shortcuts/mono-line": {
            "title": "$:/config/shortcuts/mono-line",
            "text": "ctrl-M"
        },
        "$:/config/shortcuts/picture": {
            "title": "$:/config/shortcuts/picture",
            "text": "ctrl-shift-I"
        },
        "$:/config/shortcuts/preview": {
            "title": "$:/config/shortcuts/preview",
            "text": "alt-P"
        },
        "$:/config/shortcuts/quote": {
            "title": "$:/config/shortcuts/quote",
            "text": "ctrl-Q"
        },
        "$:/config/shortcuts/save-tiddler": {
            "title": "$:/config/shortcuts/save-tiddler",
            "text": "ctrl+enter"
        },
        "$:/config/shortcuts/stamp": {
            "title": "$:/config/shortcuts/stamp",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/strikethrough": {
            "title": "$:/config/shortcuts/strikethrough",
            "text": "ctrl-T"
        },
        "$:/config/shortcuts/subscript": {
            "title": "$:/config/shortcuts/subscript",
            "text": "ctrl-shift-B"
        },
        "$:/config/shortcuts/superscript": {
            "title": "$:/config/shortcuts/superscript",
            "text": "ctrl-shift-P"
        },
        "$:/config/WikiParserRules/Inline/wikilink": {
            "title": "$:/config/WikiParserRules/Inline/wikilink",
            "text": "enable"
        },
        "$:/snippets/currpalettepreview": {
            "title": "$:/snippets/currpalettepreview",
            "text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch(colour)\n<$set name=\"swatchColour\" value={{##$colour$}}>\n<div class=\"tc-swatch\" style=<<swatchStyle>>/>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\">\n<<swatch foreground>>\n<<swatch background>>\n<<swatch muted-foreground>>\n<<swatch primary>>\n<<swatch page-background>>\n<<swatch tab-background>>\n<<swatch tiddler-info-background>>\n</div>\n"
        },
        "$:/snippets/download-wiki-button": {
            "title": "$:/snippets/download-wiki-button",
            "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
        },
        "$:/language": {
            "title": "$:/language",
            "text": "$:/languages/en-GB"
        },
        "$:/snippets/languageswitcher": {
            "title": "$:/snippets/languageswitcher",
            "text": "{{$:/language/ControlPanel/Basics/Language/Prompt}} <$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/core/macros/CSS": {
            "title": "$:/core/macros/CSS",
            "tags": "$:/tags/Macro",
            "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"/></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n  -webkit-box-shadow: $shadow$;\n     -moz-box-shadow: $shadow$;\n          box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n  -webkit-filter: $filter$;\n     -moz-filter: $filter$;\n          filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n  -webkit-transition: $transition$;\n     -moz-transition: $transition$;\n          transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n  -webkit-transform-origin: $origin$;\n     -moz-transform-origin: $origin$;\n          transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n"
        },
        "$:/core/macros/colour-picker": {
            "title": "$:/core/macros/colour-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<div style=\"background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/> \n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
        },
        "$:/core/macros/export": {
            "title": "$:/core/macros/export",
            "tags": "$:/tags/Macro",
            "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
        },
        "$:/core/macros/image-picker": {
            "title": "$:/core/macros/image-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
        },
        "$:/core/macros/lingo": {
            "title": "$:/core/macros/lingo",
            "tags": "$:/tags/Macro",
            "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
        },
        "$:/core/macros/list": {
            "title": "$:/core/macros/list",
            "tags": "$:/tags/Macro",
            "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\")\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\">\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n<$link to={{!!title}}>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$transclude>\n</$link>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n&nbsp;\n</div>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n\\end\n\n\\define list-tagged-draggable-drop-actions()\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<tag>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<tag>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Assign the list field of the tag with the current ordering -->\n<$action-setfield $tiddler=<<tag>> $field=\"list\" $value=<<order>>/>\n<!-- Add the newly inserted item to the list -->\n<$action-listops $tiddler=<<tag>> $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<$action-listops $tiddler=<<actionTiddler>> $tags=\"[<tag>]\"/>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,itemTemplate,elementTag:\"div\")\n<$set name=\"tag\" value=\"\"\"$tag$\"\"\">\n<$list filter=\"[<tag>tagging[]]\">\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n&nbsp;\n</$elementTag$>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n&nbsp;\n</$elementTag$>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tabs": {
            "title": "$:/core/macros/tabs",
            "tags": "$:/tags/Macro",
            "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/tag-picker": {
            "title": "$:/core/macros/tag-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\">\n$(actions)$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker(actions)\n<$set name=\"actions\" value=\"\"\"$actions$\"\"\">\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{$:/temp/NewTagName}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n$actions$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list>\n<hr>\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list>\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tag": {
            "title": "$:/core/macros/tag",
            "tags": "$:/tags/Macro",
            "text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view tiddler=\"\"\"$tag$\"\"\" field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=\"\"\"$tag$\"\"\" icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=\"\"\"$tag$\"\"\" icon={{$tag$!!icon}} colour={{$tag$!!color}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
        },
        "$:/core/macros/thumbnails": {
            "title": "$:/core/macros/thumbnails",
            "tags": "$:/tags/Macro",
            "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
        },
        "$:/core/macros/timeline": {
            "created": "20141212105914482",
            "modified": "20141212110330815",
            "tags": "$:/tags/Macro",
            "title": "$:/core/macros/timeline",
            "type": "text/vnd.tiddlywiki",
            "text": "\\define timeline-title()\n<!-- Override this macro with a global macro \n     of the same name if you need to change \n     how titles are displayed on the timeline \n     -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
        },
        "$:/core/macros/toc": {
            "title": "$:/core/macros/toc",
            "tags": "$:/tags/Macro",
            "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n  <$transclude field=\"caption\">\n    <$view field=\"title\"/>\n  </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n  <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n    <$vars item=<<currentTiddler>> path=\"\"\"$path$/$tag$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\">\n      <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n        <li class=<<toc-item-class>>>\n          <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n            <<toc-caption>>\n          </$list>\n          <$macrocall $name=\"toc-body\" tag=<<item>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>>/>\n        </li>\n      </$set>\n    </$vars>\n  </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\" \")\n<<toc-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n    <$link>\n      <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n          {{$:/core/images/right-arrow}}\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n          {{$:/core/images/down-arrow}}\n        </$button>\n      </$reveal>\n      <<toc-caption>>\n    </$link>\n    <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n      <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n    </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n      <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n          {{$:/core/images/right-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n          {{$:/core/images/down-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n  <ol class=\"tc-toc toc-expandable\">\n    <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n      <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n        <$macrocall $name=\"toc-unlinked-expandable-body\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n      </$list>\n    </$list>\n  </ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\" >\n    <li class=<<toc-item-class>>>\n      <$link>\n          <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n          <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n            <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n              {{$:/core/images/right-arrow}}\n            </$button>\n          </$reveal>\n          <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n            <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n              {{$:/core/images/down-arrow}}\n            </$button>\n          </$reveal>\n        </$list>\n        <<toc-caption>>\n      </$link>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n      <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n        <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n          <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n            {{$:/core/images/right-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n        <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n          <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n            {{$:/core/images/down-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n      </$list>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n  <ol class=\"tc-toc toc-selective-expandable\">\n    <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n      <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n        <$macrocall $name=toc-unlinked-selective-expandable-body tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>> >\n      </$list>\n    </$list>\n  </ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\n  <div class=\"tc-tabbed-table-of-contents\">\n    <$linkcatcher to=\"$selectedTiddler$\">\n      <div class=\"tc-table-of-contents\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n      </div>\n    </$linkcatcher>\n    <div class=\"tc-tabbed-table-of-contents-content\">\n      <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"nomatch\" text=\"\">\n        <$transclude mode=\"block\" tiddler=\"$template$\">\n          <h1><<toc-caption>></h1>\n          <$transclude mode=\"block\">$missingText$</$transclude>\n        </$transclude>\n      </$reveal>\n      <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"match\" text=\"\">\n        $unselectedText$\n      </$reveal>\n    </div>\n  </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=\"\"\"$selectedTiddler$\"\"\">\n  <$macrocall $name=\"toc-tabbed-external-nav\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" selectedTiddler=\"\"\"$selectedTiddler$\"\"\" unselectedText=\"\"\"$unselectedText$\"\"\" missingText=\"\"\"$missingText$\"\"\" template=\"\"\"$template$\"\"\"/>\n</$linkcatcher>\n\\end\n\n"
        },
        "$:/core/macros/translink": {
            "title": "$:/core/macros/translink",
            "tags": "$:/tags/Macro",
            "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
        },
        "$:/snippets/minilanguageswitcher": {
            "title": "$:/snippets/minilanguageswitcher",
            "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/minithemeswitcher": {
            "title": "$:/snippets/minithemeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/modules": {
            "title": "$:/snippets/modules",
            "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
        },
        "$:/palette": {
            "title": "$:/palette",
            "text": "$:/palettes/Vanilla"
        },
        "$:/snippets/paletteeditor": {
            "title": "$:/snippets/paletteeditor",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n"
        },
        "$:/snippets/palettepreview": {
            "title": "$:/snippets/palettepreview",
            "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n<$transclude tiddler=\"$:/snippets/currpalettepreview\"/>\n</$set>\n"
        },
        "$:/snippets/paletteswitcher": {
            "title": "$:/snippets/paletteswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n<div class=\"tc-prompt\">\n<<lingo Prompt>> <$view tiddler={{$:/palette}} field=\"name\"/>\n</div>\n\n<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><div class=\"tc-chooser-item\"><$link to={{!!title}}><div><$reveal state=\"$:/palette\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/palette\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> ''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/></div><$transclude tiddler=\"$:/snippets/currpalettepreview\"/></$link></div>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/temp/search": {
            "title": "$:/temp/search",
            "text": ""
        },
        "$:/tags/AdvancedSearch": {
            "title": "$:/tags/AdvancedSearch",
            "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
        },
        "$:/tags/AdvancedSearch/FilterButton": {
            "title": "$:/tags/AdvancedSearch/FilterButton",
            "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
        },
        "$:/tags/ControlPanel": {
            "title": "$:/tags/ControlPanel",
            "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
        },
        "$:/tags/ControlPanel/Info": {
            "title": "$:/tags/ControlPanel/Info",
            "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
        },
        "$:/tags/ControlPanel/Plugins": {
            "title": "$:/tags/ControlPanel/Plugins",
            "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
        },
        "$:/tags/EditTemplate": {
            "title": "$:/tags/EditTemplate",
            "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
        },
        "$:/tags/EditToolbar": {
            "title": "$:/tags/EditToolbar",
            "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
        },
        "$:/tags/EditorToolbar": {
            "title": "$:/tags/EditorToolbar",
            "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
        },
        "$:/tags/Manager/ItemMain": {
            "title": "$:/tags/Manager/ItemMain",
            "list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
        },
        "$:/tags/Manager/ItemSidebar": {
            "title": "$:/tags/Manager/ItemSidebar",
            "list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
        },
        "$:/tags/MoreSideBar": {
            "title": "$:/tags/MoreSideBar",
            "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Plugins]]",
            "text": ""
        },
        "$:/tags/PageControls": {
            "title": "$:/tags/PageControls",
            "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
        },
        "$:/tags/PageTemplate": {
            "title": "$:/tags/PageTemplate",
            "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
            "text": ""
        },
        "$:/tags/SideBar": {
            "title": "$:/tags/SideBar",
            "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo": {
            "title": "$:/tags/TiddlerInfo",
            "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo/Advanced": {
            "title": "$:/tags/TiddlerInfo/Advanced",
            "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
        },
        "$:/tags/ViewTemplate": {
            "title": "$:/tags/ViewTemplate",
            "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
        },
        "$:/tags/ViewToolbar": {
            "title": "$:/tags/ViewToolbar",
            "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
        },
        "$:/snippets/themeswitcher": {
            "title": "$:/snippets/themeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$view tiddler={{$:/theme}} field=\"name\"/>\n\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\"><div><$reveal state=\"$:/theme\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/theme\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$list>\n</$linkcatcher>"
        },
        "$:/core/wiki/title": {
            "title": "$:/core/wiki/title",
            "type": "text/vnd.tiddlywiki",
            "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
        },
        "$:/view": {
            "title": "$:/view",
            "text": "classic"
        },
        "$:/snippets/viewswitcher": {
            "title": "$:/snippets/viewswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/StoryView/\n<<lingo Prompt>> <$select tiddler=\"$:/view\">\n<$list filter=\"[storyviews[]]\">\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>"
        }
    }
}
/*\
title: $:/core/modules/parsers/wikiparser/rules/wikilink.js
type: application/javascript
module-type: wikirule

Wiki text inline rule for wiki links. For example:

```
AWikiLink
AnotherLink
~SuppressedLink
```

Precede a camel case word with `~` to prevent it from being recognised as a link.

\*/
(function(){

/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";

exports.name = "wikilink";
exports.types = {inline: true};

exports.init = function(parser) {
	this.parser = parser;
	// Regexp to match
	this.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + "?" + $tw.config.textPrimitives.wikiLink,"mg");
};

/*
Parse the most recent match
*/
exports.parse = function() {
	// Get the details of the match
	var linkText = this.match[0];
	// Move past the macro call
	this.parser.pos = this.matchRegExp.lastIndex;
	// If the link starts with the unwikilink character then just output it as plain text
	if(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {
		return [{type: "text", text: linkText.substr(1)}];
	}
	// If the link has been preceded with a blocked letter then don't treat it as a link
	if(this.match.index > 0) {
		var preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,"mg");
		preRegExp.lastIndex = this.match.index-1;
		var preMatch = preRegExp.exec(this.parser.source);
		if(preMatch && preMatch.index === this.match.index-1) {
			return [{type: "text", text: linkText}];
		}
	}
	return [{type: "text", text: linkText}];
	return [{
		type: "link",
		attributes: {
			to: {type: "string", value: linkText}
		},
		children: [{
			type: "text",
			text: linkText
		}]
	}];
};

})();
[[AI人工智能]]
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBAA8HARQPBwEYDwcBGA8HARgPBwEYDwcBGA8HARgPBwEYDwcBGA8HARgPBwEYDwcBGA8HARgPBwEYDwcBGA8HARgOBgEUDgcBEA8GAQoPBwEEDgYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBJg8HAd8OBwH/DgcB/w4HAf8OBwH/DgcB/w4HAf8OBwH/DgYB/w8HAf8OBwH/DwcB/w4HAf8OBwH/DwcB/w8HAf8OBgHpDgcBzQ4HAaMOBgFwDwYBLA4HAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgYBfA4HAfkPBwH/DwcB/w8HAf8PBwH/DgYB/w8HAf8PBwH/DwcB/w4HAf8PBwH/DwcB/w8HAf8OBwH/DwcB/w4GAf8PBwH/DgcB/w4HAf8PBwH/DwYBzQ4HAXgPBwEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwEIDgYBrQ8GAf8PBgH/DgYB/w8GAf8PBgH/DwYB/w4HAf8PBgH/DwcB/w8HAf8OBwH/DgYB/w8HAf8OBwH/DwcB/w4HAf8OBgH/DwcB/w4GAf8OBwH/DwYB/w4HAfcPBwG5DwcBGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBgEeDwcBww8HAf8OBwH/DwcB/w8HAf8PBgH/DwcB/w4HAf8OBwH/DwcB/w4HAf8OBwH/DwcB/w8HAf8OBwH/DwcB/w4GAf8OBgH/DwcB/w4HAf8OBgH/DwcB/w4HAf8PBwH9DgYBnw8HARYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwEqDwcBzQ8HAf8PBwH/DgYB/w4HAf8PBwH/DwcB/w8HAf8PBwH/DwcB/w8HAf8PBwH/DgcB/w8HAf8OBgH/DgcB/w8GAf8OBgH/DwcB/w8GAf8PBwH/DwcB/w4HAf8PBwH/DgcB7w4HAV4PBwECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBwEwDgcB0w4GAf8PBwH/DwcB/w4GAf8PBwH/DwcB/w8HAf8PBgH7DgcB5w8HAdkPBwHRDwcB0Q8HAdUPBwHhDwcB8Q4GAf8OBgH/DgYB/w4GAf8OBgH/DgYB/w8HAf8OBgH/DwcB/w8HAa8PBwEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBwFADgcB3w8HAf8PBwH/DgYB/w8HAf8PBwH/DwcB/w4HAfMOBgGjDgYBRA8HARoAAAAAAAAAAA8HAQ4OBgEyDwcBZA8HAbcPBwHzDwcB/w4HAf8OBgH/DwcB/w4HAf8PBwH/DwcB/w8HAesOBwEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFKDgcB5w8HAf8PBwH/DwcB/w8HAf8PBwH/DwcB/w4GAbcPBgEaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBAg8HARoOBgGNDwcB+w8HAf8PBwH/DwcB/w8HAf8OBgH/DwcB/w4HAf8PBgFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBwFKDwcB5w8GAf8PBwH/DwcB/w4GAf8PBwH/DwYB/Q8HAUwPBwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwEEDgYBrQ8HAf8PBwH/DgYB/w8HAf8PBgH/DwcB/w8HAf8PBwFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBwFKDwYB5w8HAf8PBwH/DgcB/w8HAf8OBwH/DgYB+w8HARIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBWA4HAf8OBwH/DgYB/w8HAf8PBwH/DwcB/w8HAf8PBwFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFUDwcB8Q8HAf8OBgH/DgYB/w8HAf8OBgH/DwcB1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwYBNg4HAf8OBgH/DwcB/w4GAf8PBwH/DwcB/w8HAf8PBwE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBgFmDwcB/w8HAf8OBwH/DgYB/w8HAf8PBwH/DgcBxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBQA4GAf8OBwH/DgYB/w4HAf8PBgH/DwcB/w8HAdkPBwEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDgcB/w4GAf8PBwH/DwYB/w8HAf8PBwH/DwcBqQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBhw4GAf8OBgH/DgcB/w4GAf8OBgH/DgcB/w8HAa8PBwEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDwcB/w8HAf8PBwH/DgYB/w8HAf8PBwH/DwYBmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBgEMDwcB2Q8HAf8PBwH/DwcB/w8HAf8OBwH/DwcB9Q8GAWwPBwEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDgcB/w8HAf8OBwH/DwYB/w8HAf8PBwH/DwcBzQ8HAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8HAQYPBgFyDwcB+Q4HAf8OBwH/DgYB/w8HAf8PBwH/DwcBwQ8HAR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDgYB/w4GAf8PBwH/DgYB/w8HAf8PBwH/DwYB+Q8HAYUPBwEcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8HAToPBwHbDwYB/w4HAf8OBwH/DwcB/w8HAf8OBwH7DwYBXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDwcB/w4HAf8PBwH/DwcB/w8HAf8PBwH/DwcB/w4GAfcPBwHLDgcBXg8HARAPBgECAAAAAAAAAAAAAAAADwcBIg4GAbkOBgH9DwcB/w8HAf8PBgH/DwcB/w4HAf0OBgGhDwcBCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDwcB/w8GAf8PBgH/DgcB/w8HAf8PBwH/DgcB/w4HAf8OBgH/DwcB/Q8HAbkPBgFUDwcBEg8HAQIPBgEmDgcBuw4HAf8PBwH/DwcB/w4HAf8OBwH/DwcB+w8GAbkPBwEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBgFmDgYB/w8GAf8OBwH/DwYB/w4HAf8OBwH/DwYB/w4HAf8OBwH/DwYB/w4HAf8PBgHpDgYBrw8HAYEOBwG/DgYB+w8HAf8OBwH/DgYB/w8GAf8PBwH/DgcBzw8HAS4PBwECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDgcB/w8HAf8PBgH/DgYB/w4HAf8PBgH/DwcB/w4GAf8PBgH/DwcB/w8GAf8OBgH/DwcB/w8GAfkPBgH9DwcB/w4GAf8PBgH/DwcB/w8HAfsPBgHdDwcBMg8HAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFmDwcB/w8GAf8PBwH/DgcB/w8HAf8OBgH/DwYB/w8HAf8OBgH/DgYB/w4HAf8PBwH/DgYB/w4HAf8PBgH/DwcB/w8HAf8PBwH/DwYB/Q4GAccPBwE8DgcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBgFmDgYB/w8HAf8OBwH/DwcB/w4HAf8OBwH/DwcB5Q8HAZMPBwG7DwYB9Q4HAf8OBwH/DwcB/w4HAf8PBgH/DgYB/w8GAf8PBwH/DgYB5w8HAVAPBwEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBgFSDgcB7Q8HAf8PBwH/DwcB/w4HAf8PBwH/DwYBgQ4GAQYPBwEKDwcBPg8GAccOBgH3DwcB/w8HAf8PBgH/DwcB/w4GAf8PBgH/DwcB3w8HATYPBgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFKDgcB5w8GAf8OBwH/DwcB/w8HAf8OBwH/DwYBcAAAAAAAAAAADgcBAA8HASAPBgGJDwcB7Q4HAf8OBgH/DwcB/w8HAf8PBwH/DwYB+Q8HAacOBwEaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFKDwYB5w4GAf8PBwH/DgYB/w8HAf8OBwH/DwYBcAAAAAAAAAAAAAAAAAAAAAAPBwEODwYBXg8HAekOBwH/DwYB/w4GAf8OBwH/DwYB/w4HAfcPBwGRDwYBAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFKDwYB5w8HAf8PBwH/DgcB/w8HAf8PBgH/DwcBdAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBAA8GASwPBgG9DwcB/Q4GAf8OBgH/DwcB/w4GAf8PBgH9DwYBgw4HAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwFKDgcB5w8GAf8PBwH/DgcB/w8HAf8OBwH/DgYBiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwEwDwcB2Q8HAf8PBwH/DwYB/w8HAf8OBwH/DwcB6w4HAVwPBwEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBgE2DwcB1w8HAf8PBwH/DgcB/w8HAf8PBwH/DgcBqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBWg4GAfcPBwH/DwcB/w8HAf8PBwH/DwcB/w8HAcMPBwEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBgEwDgYB0Q8HAf8OBwH/DgYB/w4GAf8OBwH/DgcB4Q8HAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBEg4HAbEPBgH/DgcB/w8GAf8OBgH/DgYB/w4HAf8PBwF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwEwDgYB0Q4GAf8PBwH/DgcB/w8HAf8PBwH/DwcB/Q8HAToAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwYBBA8GAXYPBwH/DgYB/w8HAf8OBwH/DwcB/w8HAf8PBwHPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBgEeDwcBww4HAf8PBwH/DwcB/w8GAf8PBwH/DwcB/w8HAaUPBgEODwcBAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBAg8HAW4PBwH/DwcB/w8HAf8PBwH/DwcB/w8HAf8PBwH1DwcBFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBgEUDgYBuw8HAf8OBwH/DwcB/w8HAf8OBwH/DgYB/w8HAfUPBwGVDwcBIgAAAAAAAAAAAAAAAAAAAAAAAAAADwcBKA8HAcEOBwH/DwcB/w4HAf8PBwH/DwcB/w8GAf8PBwH5DwcBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBwECDgcBqw8HAf8PBwH/DgYB/w8HAf8OBgH/DgcB/w8GAf8PBwH3DwcBvQ8HAXYPBwFQDgcBRg4HAUYPBwFoDgYBuQ8HAfsPBwH/DwcB/w8HAf8PBwH/DwcB/w4HAf8PBwH5DwYBGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBiQ8HAfsPBgH/DgYB/w8GAf8PBgH/DwcB/w8HAf8PBgH/DwcB/w8HAfcPBwHvDwcB7Q8HAe0PBwHzDwcB/w8HAf8OBwH/DwcB/w8HAf8OBwH/DwcB/w8HAf8PBwHZDwcBAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBZA4HAfcOBwH/DwcB/w4HAf8PBwH/DgYB/w8HAf8OBwH/DwcB/w4GAf8PBwH/DwcB/w8HAf8OBwH/DwcB/w8GAf8PBwH/DwcB/w8HAf8PBwH/DgYB/w8HAfsOBwGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwYBOA8GAfMOBwH/DwcB/w4HAf8OBwH/DwcB/w4GAf8OBgH/DwYB/w8HAf8OBwH/DwcB/w8HAf8PBwH/DwcB/w4HAf8PBwH/DwcB/w8HAf8OBwH/DwcB/w4HAcsPBwEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwcBBA4GAdcPBwH/DgYB/w8HAf8PBwH/DgYB/w8HAf8PBwH/DgYB/w8HAf8PBwH/DgYB/w8HAf8PBgH/DwcB/w8GAf8PBgH/DwcB/w8HAf0PBgHxDgYBtQ8HATYPBwECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8GAXAPBgHzDgcB/w8GAf8PBwH/DgcB/w8GAf8PBgH/DwcB/w8HAf8PBgH/DwcB/w8GAf8OBwH/DwcB/w8GAfMPBwHhDwcBww4HAaUPBgFmDwcBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8HARAPBwFGDwYBTg8HAU4PBgFODgcBTg8HAU4PBwFODwcBTg8HAU4PBwFODwcBTg8HAU4PBgFODwcBTg8HAUYPBwE6DwcBJA8GARAPBwECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD/4AAD//8AAP/gAAD//wAA/8AAAD//AAD/wAAAH/8AAP/AAAAf/wAA/8AAAA//AAD/wB/AD/8AAP/AP+AP/wAA/8B/8A//AAD/wH/4D/8AAP/Af/gP/wAA/8B/+A//AAD/wH/wD/8AAP/Af/Af/wAA/8B/8B//AAD/wD/gP/8AAP/AH8A//wAA/8AHgH//AAD/wAAA//8AAP/AAAH//wAA/8AAA///AAD/wAAH//8AAP/AcAf//wAA/8D4A///AAD/wP4B//8AAP/A/wD//wAA/8B/gP//AAD/wH/Af/8AAP/Af8B//wAA/8B/4D//AAD/wD/gP/8AAP/AH8A//wAA/8APgD//AAD/wAAAP/8AAP/gAAA//wAA/+AAAH//AAD/4AAA//8AAP/wAAP//wAA////////AAD///////8AAP///////wAA////////AAA=
UA-46774526-2
下列条目已被导入:

# [[目录]]
no
$:/languages/zh-Hans
{
    "tiddlers": {
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "高级查找"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "高级查找"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "取消"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "放弃对此条目的更改"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "克隆"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "克隆此条目"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "关闭"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "关闭此条目"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "全部关闭"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "关闭所有条目"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "关闭其他"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "关闭其他条目"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "控制台"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "开启控制台"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "删除"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "删除此条目"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "编辑"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "编辑此条目"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "加密"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "设置或清除保存此维基的密码"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "清除密码"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "清除密码且不加密保存此维基"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "设置密码"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "设置加密保存此维基的密码"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "导出所有条目"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "导出所有条目"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "导出此条目"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "导出此条目"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "导出条目"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "导出条目"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "收合条目"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "收合此条目的内容"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "展开条目"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "展开此条目的内容"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "收合其他条目"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "收合其他已开启条目的内容"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "收合所有条目"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "收合所有已开启条目的内容"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "收合栏"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "可选的收合与展开条目的长条按钮"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "展开所有条目"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "展开所有已开启条目的内容"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "全屏幕"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "进入或离开全屏模式"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "帮助"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "显示帮助面板"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "首页"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "开启首页条目"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "导入"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "导入许多类型的文件包括文本、图像、TiddlyWiki 或 JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "信息"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "显示此条目的信息"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "语言"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "选择用户介面语言"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "条目管理器"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "开启条目管理器"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "更多"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "更多动作"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "添加子条目"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "创建一个标签为此条目名称的新条目"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "添加日志"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "创建一个新的日志条目"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "添加子日志"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "创建一个标签含此条目名称的新日志条目"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "添加图像"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "创建一个新的图像条目"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "添加 Markdown 条目"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "创建一个新的 Markdown 条目"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "添加条目"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "创建一个新的条目"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "开启于新窗口"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "在新窗口中开启条目"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "调色板"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "选择调色板"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "引用链接"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "设置浏览器网址栏为直接链接到此条目"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "永久链接"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "设置浏览器网址栏为直接链接到当前所有已开启条目"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "打印页面"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "打印当前页面"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "刷新"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "执行维基的完全刷新"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "确定"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "确定对此条目的更改"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "保存变更"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "保存变更"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "查看模式"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "选择查看条目的视觉效果"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "隐藏侧边栏"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "隐藏侧边栏"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "显示侧边栏"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "显示侧边栏"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "标签管理"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "标签管理"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "时间戳记"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "选择修改是否更新时间戳记"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "时间戳记开启"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "条目被修改时,更新时间戳记"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "时间戳记关闭"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "条目被修改时,不更新时间戳记"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "布景主题"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "选择布景主题"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "粗体"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "套用粗体格式于所选文本"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "清除"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "清除图像为纯色"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "编辑器高度"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "自动调整高度以适合内容"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "固定高度︰"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "选择文本编辑器的高度"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "剪切"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "执行剪切"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "宏的名称︰"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "新条目的名称︰"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "替换剪切的文本为:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "宏"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "链接"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "嵌入"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "将新条目的标签设为此条目的名称"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "警示:条目已经存在"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "剪切所选文本到一个新条目"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "标题 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "套用标题级别 1 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "标题 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "套用标题级别 2 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "标题 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "套用标题级别 3 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "标题 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "套用标题级别 4 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "标题 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "套用标题级别 5 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "标题 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "套用标题级别 6 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "斜体"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "套用斜体格式于所选文本"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "线宽"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "设置绘画的线条宽度"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "链接"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "创建维基文字链接"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "符号清单"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "套用符号清单格式于包含所选文本的列"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "数字清单"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "套用数字清单格式于包含所选文本的列"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "等宽区块"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "套用等宽区块格式于包含所选文本的列"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "等宽"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "套用等宽字符格式于所选文本"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "不透明度"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "设置绘画的不透明度"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "绘画颜色"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "设置绘画的颜色"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "图片"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "插入图片"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "预览"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "显示预览窗格"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "预览类型"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "选择预览类型"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "引言"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "套用引言文本格式于包含所选文本的列"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "图像大小"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "高度︰"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "调整图像的大小"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "宽度:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "设置图像的大小"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "印记"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "添加您自己的"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "插入一个预配置的文本片段"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "在选单中显示的标题"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "片段的文本。(记得在 `caption` 栏位中添加一个说明性的标题)。"
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "删除线"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "套用删除线格式于所选文本"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "下标"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "套用下标格式于所选文本"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "上标"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "套用上标格式于所选文本"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "下划线"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "套用下划线格式于所选文本"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "高级"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "关于此 TiddlyWiki 的内部信息"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "视觉外观"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "定制您的 TiddlyWiki 外观。"
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "动画持续时间:"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "基本"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "标题含空白时请使用 &#91;&#91;双中括弧&#93;&#93;,或者您可用 <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">保留开启中的条目顺序</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "首页:"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "默认开启的条目:"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "您好!当前的语言:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "新日志条目的标签"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "新日志条目的内容"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "新日志条目的名称"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "被覆写的默认条目数量:"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "默认条目数量:"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "副标题:"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "系统条目数量:"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "标签数量:"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "一般条目数量:"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "标题:"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "编辑者署名:"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki 版本:"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "编辑器类型"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "编辑器"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "这些条目决定使用哪个编辑器来编辑特定条目类型。"
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "类型"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "信息"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "有关此 TiddlyWiki 的信息"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "在此输入快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "添加快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "管理键盘快捷键分配"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "尚无指定快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "删除快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "所有平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "仅 Macintosh 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "仅非 Macintosh 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "仅 Linux 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "仅非 Linux 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "仅 Windows 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "仅非 Windows 平台"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "已加载的模块"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "这些是当前已加载的模块之源码条目。斜体的模块则无源码条目,通常是因为它们是在引导过程中设置。"
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "调色板"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "复制"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "建议您修改前先复制此默认调色板"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "此默认调色板已被修改过"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "编辑"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "重置"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "隐藏编辑器"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "当前的调色板:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "显示编辑器"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "从官方插件库安装插件"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "获取更多插件"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "此插件已经安装版本 <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "禁用"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "重新加载页面时禁用此插件"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(已禁用)"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "无"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "启用"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "重新加载页面时启用此插件"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "安装"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "当前已安装的插件:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "语言"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "语言包插件"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "无 ''\"<$text text=<<currentTab>>/>\"''"
        },
        "$:/language/ControlPanel/Plugins/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "未提供信息"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "尚未安装此插件"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "开启插件程式库"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "关闭插件程式库"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "重新安装"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "布景主题"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "布景主题插件"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "解析"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "在此您可以全域禁用或启用维基解析规则。要使更改生效,请保存并重新加载您的维基。禁用某些解析规则,会妨碍 <$text text=\"TiddlyWiki\"/> 正常运作。可使用[[安全模式|http://tiddlywiki.com/#SafeMode]]恢复正常操作。"
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "区块解析规则"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "内联解析规则"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "编译指示解析规则"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "保存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "允许下载保存模块的自动保存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "启用下载保存模块的自动保存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "下载保存模块"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "这些设置适用于兼容 HTML5 的下载保存模块"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "通用"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "这些设置适用于所有已载入的保存模块"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "用于通过保存模块将整个 TiddlyWiki 保存为单个文件的设置"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "高级设置"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "备份文件夹"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "备份"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot 保存模块"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "这些设置只适用于保存到 http://tiddlyspot.com 或兼容的远程服务器时。"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "上传文件名"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//默认之服务器网址 `http://<wikiname>.tiddlyspot.com/store.cgi`,可改为定制之服务器网址,例如 `http://example.com/store.php`。//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "密码"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "服务器网址"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "上传文件夹"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "用户"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "自动保存"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "不要自动保存变更"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "自动保存变更"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "当使用支持的保存模块时,在编辑期间尝试自动保存变更"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "驼峰式维基链接"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "您可以全域禁用驼峰式短语自动链接。须保存后重新加载,方才生效。"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "启用自动驼峰式链接"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "设置"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "默认侧边栏页签"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "指定默认显示的侧边栏页签"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "编辑器工具栏"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "启用或禁用编辑器工具栏︰"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "显示编辑器工具栏"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "条目信息面板模式"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "控制条目信息面板何时关闭︰"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "条目信息面板自动关闭"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "条目信息面板保持打开状态,直到明确关闭"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "这些高级设置让您定制 TiddlyWiki 的行为。"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "条目开启行为"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "从故事河//中//导航"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "从故事河//外//导航"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "开启于当前条目之上"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "开启于当前条目之下"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "开启于故事河的顶端"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "开启于故事河的底部"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "维基链接"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "选择是否要链接到尚未存在的条目"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "启用链接到佚失条目"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "网址栏导览"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "在浏览器网址栏导览到条目时的行为:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "不更新网址栏"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "包含目标条目"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "包括目标条目和当前已开启的条目序列"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "历史记录导览"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "当导览到条目时,更新浏览器历史记录:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "不更新历史记录"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "更新历史记录"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "性能检测"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "在浏览器的开发人员控制台,显示性能统计数据。需要重新加载才能生效。"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "启用性能检测"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "工具栏按钮样式"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "选择工具栏按钮的样式:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "无边框"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "方框"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "圆形"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "工具栏按钮"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "默认的工具栏按钮外观:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "包含图标"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "包含文本"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "条目标题"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "可选地显示条目标题为链接"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "不显示条目标题为链接"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "显示条目标题为链接"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "查看模式"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "当前的查看模式:"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "布景主题"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "当前的布景主题:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "条目栏位"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "这是本维基使用中的所有条目栏位(含系统条目的栏位,但默认条目的栏位除外)。"
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "工具栏"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "编辑工具栏"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "选择将显示哪些按钮于条目的编辑模式工具栏。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "选择将显示哪些工具栏按钮"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "页面工具栏"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "选择将显示哪些按钮于主页面的工具栏。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "编辑器工具栏"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "选择将显示哪些按钮于编辑器工具栏。请注意,某些按钮只会出现在编辑某一类型的条目时。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "查看工具栏"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "选择将显示哪些按钮于条目的查看模式工具栏。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "下载完整副本"
        },
        "$:/core/zh-Hans/readme": {
            "title": "$:/core/zh-Hans/readme",
            "text": "此插件包含 TiddlyWiki 的核心组件,包括:\n\n* JavaScript 代码模块\n* 图标\n* 创建 TiddlyWiki 的用户介面所需的模板\n* 核心所使用的可当地语系化字串的英国英语 (''en-GB'') 翻译\n"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "周日"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "周一"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "周二"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "周三"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "周四"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "周五"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "周六"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "一月"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "二月"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "三月"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "四月"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "五月"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "六月"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "七月"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "八月"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "九月"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "十月"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "十一月"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "十二月"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "上午"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "下午"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "日"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "一"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "二"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "三"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "四"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "五"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "六"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "01月"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "02月"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "03月"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "04月"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "05月"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "06月"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "07月"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "08月"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "09月"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "10月"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "11月"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "12月"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> 天后"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> 小时后"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> 分钟后"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> 个月后"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 秒后"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> 秒后"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> 年后"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> 天前"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> 小时前"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> 分钟前"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> 个月前"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 秒前"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> 秒前"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> 年前"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "''all'' 筛选器算子的子算子。"
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "动画模块包含可用于 RevealWidget 的动画。"
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "一个位图编辑器工具栏操作。"
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "可于 Node.js 执行的指令。"
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "加入 `$tw.config` 的数据。"
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "个别筛选器算子方法。"
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "加入 `$tw` 的全域数据。"
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "透过 [[$:/temp/info-plugin]] 伪插件,发布系统信息。"
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "''is'' 筛选器算子的运算符。"
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "一般用途的 JavaScript 模块的通用模块类型。"
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript ''宏''定义。"
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "不同内容类型的解析器。"
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "于浏览器保存文件的不同的保存处理方法。"
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "启动时期的功能函数。"
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "查看模式用以自订 list 小部件的动画与行为。"
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "一个文本编辑器工具栏操作。"
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "转换不同内容类型至条目。"
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "定义个别条目栏位的行为。"
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "添加方法至 `$tw.Tiddler` 原型。"
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "于升级/导入过程中,套用升级处理至条目。"
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "添加方法至 `$tw.utils`。"
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "将特定于 Node.js 的方法添加到 '$tw.utils'。"
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "封装 DOM 渲染和刷新的小部件。"
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "添加方法至 `$tw.Wiki`。"
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "WikiText 解析器的个别的语法规则。"
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "警示背景"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "警示边框"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "警示高亮度"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "警示的低调前景"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "一般背景"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "引言条"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "默认按钮背景"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "默认按钮边框"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "默认按钮前景"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "代码背景"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "代码边框"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "代码前景"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "未保存变更指示器"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "下载按钮背景"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "下载按钮前景"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "拖动区背景"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "拖动区前景"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "下拉背景"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "下拉边框"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "选定的下拉页签背景"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "下拉页签背景"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "拖放背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "悬停外部链结背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "已造访过的外部链结背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "外部链结背景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "悬停外部链结前景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "已造访过的外部链结前景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "外部链结前景"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "一般前景"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "信息框背景"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "信息边框"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "信息框前景"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "模块背景幕"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "模块背景"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "模块边框"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "模块页脚背景"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "模块页脚边框"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "模块标题边框"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "一般低调前景"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "通知背景"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "通知边框"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "页面背景"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "pre 背景"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "pre 边框"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "主颜色"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "侧边栏按钮前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "悬停侧边栏控制项前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "侧边栏控制项前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "侧边栏前景阴影"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "侧边栏前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "悬停侧边栏低调前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "侧边栏低调前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "侧边栏选定页签背景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "侧边栏页签背景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "侧边栏选定页签边框"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "侧边栏页签边框"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "侧边栏页签分隔线"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "侧边栏选定页签前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "侧边栏页签前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "侧边栏悬停条目链结前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "侧边栏条目链结前景"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "网站标题前景"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "静态警示前景"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "选定的页签背景"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "页签背景"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "选定的页签边框"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "页签边框"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "页签分隔线"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "选定的页签前景"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "页签前景"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "表格边框"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "表格页脚背景"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "表格标题背景"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "标签背景"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "标签前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "条目背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "条目边框"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "悬停的条目控制项前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "选定的条目控制项前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "条目控制项前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "条目编辑器背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "条目编辑器边框图片"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "条目编辑器边框"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "条目编辑器中偶数栏位背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "条目编辑器中奇数栏位背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "条目信息面板背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "条目信息面板边框"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "条目信息面板页签背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "条目链结背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "条目链结前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "条目副标题前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "条目标题前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "工具栏 '添加条目' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "工具栏 '选项' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "工具栏 '保存' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "工具栏 '资讯' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "工具栏 '编辑' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "工具栏 '关闭' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "工具栏 '删除' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "工具栏 '取消' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "工具栏 '完成  按钮前景"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "未设标签的背景"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "非常低调前景"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "这是保存于主要的 TiddlyWiki 文件之外的外部条目。你可以编辑其标签和栏位,但不能直接编辑内容本身"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "输入此条目的内容"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "输出"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "删除栏位"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "删除栏位"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "添加"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "系统栏位"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "使用者栏位"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "栏位名称"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "添加栏位:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "栏位内容"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "这是一个默认条目。您做的任何更改将会覆盖来自 <<pluginLink>> 插件的默认版本。"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "这是一个修改过的默认条目。删除此条目可以还原为 <<pluginLink>> 插件中的默认版本。"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "添加"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "标签名称"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "标签清单"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "显示标签清单"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "请注意,避免在条目名称中使用这些字符:<<bad-chars>>"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "目标条目已经存在"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "将在其他条目的 //tags// 和 //list// 栏位中的 ''<$text text=<<fromTitle>>/>'' 改为 ''<$text text=<<toTitle>>/>''"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "内容类型清单"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "显示内容类型清单"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "删除内容类型"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "删除内容类型"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "内容类型"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "类型:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "静态 HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON 文件"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV 文件"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" 文件"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "外部图像条目的完整的 URI"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "条目的来源集的名称"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "显示于页签或按钮上的标题文字"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "条目的 CSS 颜色值"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "负责[[警示条目|AlertMechanism]]的组件名称"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "条目的创建日期"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "条目的创建者"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "用于缓存[[浏览历史列表|HistoryMechanism]]的最上层条目"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "插件的相依插件列表"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "插件的说明、描述"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "草稿条目,包含条目的标题、标签、栏位 ..."
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "草稿条目的标题"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "wizard 的注脚"
        },
        "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": {
            "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
            "text": "于 [[$:/core/templates/static.content]] 使用的临时保存栏位"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "条目的标题含有与条目关联的图标"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "若设为 “yes”,表示条目应该被保存为一个 JavaScript 程序库"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "条目的列表,指定一些条目的标题清单"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "前条目名称将被添加到条目排序清单中的设置条目名称之前,或若此栏位存在但是空的,则在清单的起始位置"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "当前条目名称将被添加到条目排序清单的设置条目名称之后"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "条目的最近修改日期与时间"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "条目的最近修改者"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "具可读性的插件条目的名称"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "插件条目的优先级数值"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "插件条目的类型"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "TiddlyWiki 的发布日期"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "条目存放于服务器中的修订版本"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "条目的网址"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "一个 wizard 的副标题"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "条目的标签清单"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "条目的内文"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "条目的唯一名称"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "条目的内容类型"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "插件的版本信息"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "所有条目,不含系统条目"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "最近修改的条目,包含系统条目"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "最近修改的条目"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "所有标签,不含系统标签"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "缺失条目"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "草稿条目"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "孤立条目"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "系统条目"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "默认条目"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "被覆写的默认条目"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "系统标签"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "故事河中的条目,不含 ~$:/AdvancedSearch"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "非维基文字条目"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n欢迎使用 ~TiddlyWiki 及参与 ~TiddlyWiki 社群\n\n开始将重要资讯存放于 ~TiddlyWiki 之前,确认您可以可靠地保存变更是很重要的。详细资讯请参阅 http://tiddlywiki.com/#GettingStarted\n\n!! 设置此 ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\n请参阅[[控制台|$:/ControlPanel]]查看更多选项。"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "自动执行已配置的命令",
            "text": "生成指定的生成目标为当前 wiki。若未指定任何生成目标,则生成所有可用的目标。\n\n```\n--build <target> [<target> ...]\n```\n\n生成目标在 wiki 文件夹的 `tiddlywiki.info` 文件中定义。\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "清除用于后续加密的密码",
            "text": "清除用于后续加密的密码\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\n用法: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\n可用的命令:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\n取得关于某个命令的详细帮助:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "列出可用的 TiddlyWiki 版本",
            "text": "列出可用版本的名称和描述。您可以用 `--init` 命令创建一个指定版本的新维基。\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "通过网址从维基撷取条目",
            "text": "通过 HTTP/HTTPS 撷取一个或多个文件,并导入匹配筛选器的条目,可选的转换传入的名称。\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n```\n\n使用 \"file\" 选项为仅撷取单个文件,且第一个参数为要读取文件的网址。\n\n使用 \"files\" 选项为撷取多个文件,且第一个参数是一个产生要读取文件的网址清单的筛选器。例如,给定标签为 \"remote-server\" 的一组具有字段 \"url\" 的条目,筛选器 `[tag[remote-server]get[url]]` 将取回所有可用的网址。\n\n`<import-filter>` 参数指定一个筛选器,用于确定要导入哪些条目。如果未提供,则默认为 `[all[tiddlers]]`。\n\n`<transform-filter>` 参数指定一个可选的筛选器,用于转换导入条目的名称。例如,`[addprefix[$:/myimports/]]` 会将前缀 `$:/myimports/` 加至每个名称。\n\n于 `--fetch` 之前使用 `--verbose` 命令,将在导入期间输出进度信息。\n\n请注意,TiddlyWiki 不会撷取一个已经加载插件的旧版本。\n\n以下示例从 http://tiddlywiki.com 取回所有非系统条目,并将其保存到一个 JSON 文件:\n\n```\ntiddlywiki --verbose --fetch file \"http://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "显示 TiddlyWiki 命令的说明",
            "text": "显示命令的帮助文本:\n\n```\n--help [<command>]\n```\n\n若省略命令名称,则显示可用命令的清单。\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "初始化一个新的 wiki 文件夹",
            "text": "初始化一个空的 [[WikiFolder|WikiFolders]] 的指定版本的副本。\n\n```\n--init <edition> [<edition> ...]\n```\n\n例如:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\n注意:\n\n* 若有需要,将创建 wiki 文件夹目录\n* 其中 \"edition\" 默认为 ''empty''\n* 若 wiki 文件夹不是空的,则初始化命令将失败\n* 初始化命令会删除 'tiddlywiki.info' 文件内所有 'includeWikis' 的定义。\n* 当指定多个版本时,这些版本于初始化后,将覆写早期版本共用的所有文件 (故此最终的 `tiddlywiki.info` 文件将是从最近的版本复制而得)\n* `--editions` 传回所有可用版本的清单。\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "从文件中加载条目",
            "text": "从 2.x.x TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` 或其他文件加载条目\n\n```\n--load <filepath>\n```\n\n从已加密的 TiddlyWiki 文件中加载条目,须使用 PasswordCommand 指定密码,例如:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\n请注意 TiddlyWiki 将不加载旧版本的已挂载的插件。\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "构建升级处理所需的程式库插件",
            "text": "为升级处理构建 `$:/UpgradeLibrary` 条目。\n\n升级程式库被格式化为一个插件类型为 `library` 的一般插件条目。它包含 TiddlyWiki5 存储库中所有可用的插件、布景主题和语言包的副本。\n\n此命令仅供内部使用;它只是与使用者构建一个自订的升级程序相关。\n\n```\n--makelibrary <title>\n```\n\n标题参数默认为 `$:/UpgradeLibrary`。\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "无此帮助项目"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "设置后续命令的基准输出文件夹",
            "text": "设置后续命令的基准输出文件夹,默认为该版本文件夹的 `output` 子文件夹。\n\n```\n--output <pathname>\n```\n\n若指定的路径是相对路径,则它是被解析相对于当前的工作文件夹。例如:`--output .` 將輸出文件夹設置為當前工作文件夹。"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "设置用以加密的密码",
            "text": "设置用以加密的密码\n\n```\n--password <password>\n```\n\n''请注意'':这不是用于提供 TiddlyWiki 具有密码保护功能。相反地,请看 [[ServerCommand]] 的密码选项说明。\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "呈现个别条目为指定的内容类型",
            "text": "呈现个别条目为指定的[[内容类型|ContentType]],默认为 `text/html` 且保存为指定的文件名。\n\n还可以指定一个模板,在这种情况下,\"currentTiddler\" 变量设为正在呈现的条目 (第一个参数值) 与模板条目合并呈现。\n\n也能可选地指定附加变量的名称与其值。\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>]\n```\n\n默认情况下,文件名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。\n\n自动创建在文件名称的路径中任何缺少的文件夹。\n\n例如,以下命令通过使用核心模板 `$:/core/templates/exporters/JsonFile`,将所有匹配筛选器 `[tag[done]]` 的条目保存到名为 `output.json` 的 JSON 文件。\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "呈现符合筛选条件的条目为指定的内容类型",
            "text": "呈现符合筛选条的条目为指定的[[内容类型|ContentType]] (默认为 `text/html`) 与扩展名 (默认为 `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\n例如:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\n默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。\n\n在目标文件夹中的任何文件都会被删除,除非指定 ''noclean'' 旗标。若缺少目标文件夹,则以递归方式创建。"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "将条目的原始内容保存到一个文件",
            "text": "保存个别条目的原始文本或二进制格式到指定的文件名。\n\n```\n--savetiddler <title> <filename>\n```\n\n默认情况下,文件名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。\n\n自动创建在文件名称的路径中任何缺少的文件夹。\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "将一群条目的原始内容保存到一个文件夹",
            "text": "保存一群条目的原始文字或二进制格式到指定的文件夹。\n\n```\n--savetiddlers <filter> <pathname> [noclean]\n```\n\n默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。\n\n保存指定的文件之前,会先清除输出目录的现有文件。可藉由指定 ''noclean'' 旗标,禁用该删除动作。\n\n自动创建在路径中任何缺少的文件夹。\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "提供一个 HTTP 服务器介面到 TiddlyWiki",
            "text": "在服务器中内置 TiddlyWiki5 是非常简单。虽与 TiddlyWeb 兼容,但不支持许多健全互联网面向的使用方式所需的功能。\n\n提供呈现一个指定条目,也可将个别条目编码成 JSON,且支持基本的 HTTP 操作 `GET`、`PUT` 及 `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\n参数说明:\n\n* ''port'' - 服务的埠号 (默认为 \"8080\")\n* ''roottiddler'' - 服务的基本条目 (默认为 \"$:/core/save/all\")\n* ''rendertype'' - 呈现的基本条目内容类型 (默认为 \"text/plain\")\n* ''servetype'' - 服务的基本条目内容类型(默认为 \"text/html\")\n* ''username'' - 默认的编辑者署名\n* ''password'' - 可选的基本验证密码\n* ''host'' - 可选的主机名称, (默认为 \"127.0.0.1\" 或名为 \"localhost\")\n* ''pathprefix'' - 可选的路径前缀\n\n若指定密码参数,浏览器将提示使用者输入用户名与密码。注意,密码系以明码方式传递,因此并不适合一般正式用途。\n\n例如:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\n若您需要设置主机名称或路径前缀而不要求输入密码,则可以指定空字符串的使用者名和密码:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\n同时执行多个 TiddlyWiki 服务,须分别指定不同的埠号。\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "准备用于外部条目",
            "text": "//请注意此命令是试验性的,且可能会更改或在最终定稿前被替换//\n\n设置一群条目的指定栏位到 wikifying 范本条目的结果,其中的  `currentTiddler` 变数设置为各该条目。\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\n参数说明:\n\n* ''filter'' - 受影响的辨识条目的筛选条件\n* ''fieldname'' - 要修改的栏位(默认为 \"text\")\n* ''templatetitle'' - 该条目 wikify 到指定栏位。若为空白或丢失,则删除指定的栏位\n* ''rendertype'' - 要呈现的文本类型(默认为 \"text/plain\"; \"text/html\" 可以用于包含 HTML 标记))\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "从插件解开附属的条目",
            "text": "提取插件的附属条目,将其建立为一般条目:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "触发详细的输出模式",
            "text": "触发显示详细的命令执行过程,可用于调试\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "显示 TiddlyWiki 的版本编号",
            "text": "显示 TiddlyWiki 的版本编号。\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "下列条目已被导入:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "取消"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "这些条目已备妥导入:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "导入"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "选择"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "状态"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "条目"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "封锁的不兼容或过时插件"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "封锁的插件 (由于传入的 <<incoming>> 较现有版本 <<existing>> 旧)"
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "升级插件,从 <<incoming>> 到 <<upgraded>>"
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "封锁的暂存状态条目"
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "封锁的系统条目"
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "从 <$text text=<<from>>/> 迁移布景主题"
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "您貌似要加载为 ~TiddlyWiki 经典版设计的插件。请注意,[[这些插件无法运行于 TiddlyWiki 5.x.x 版|http://tiddlywiki.com/#TiddlyWikiClassic]]。检测到 ~TiddlyWiki 经典版插件:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "此条目包含二进制数据"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "此条目以经典版 TiddlyWiki 标记格式撰写,不完全兼容新版 TiddlyWiki 的格式,详细信息请参阅:http://tiddlywiki.com/static/Upgrading。"
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "升级"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "全部关闭"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "最近︰"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "您确定要放弃对条目 \"<$text text=<<title>>/>\" 的更改?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "您确定要删除条目 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "您确定要覆写条目 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "您即将要编辑默认条目,任何更改将会覆盖默认的系统,使未来的升级不寻常。您确定要编辑 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "计数"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "新条目"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "拖放到此处 (或按 ESC 键取消)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "取消"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "您要清除密码吗?当保存此维基时,这将删除已套用的加密"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "用户名称"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "密码"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "为此 TiddlyWiki 设置一个新密码"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "重复输入密码"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "密码不匹配"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "设定密码"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "错误"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "服务器上的文件已更改"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "筛选器错误"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "筛选器运算式中的语法错误"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "筛选器错误︰'is' 筛选器运算符的未知操作数"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "加载插件程式库时,发生错误"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "于 transclude 小部件中的递回嵌入错误"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "简要条目清单撷取错误"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "保存到 TWEdit 时,发生错误"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "保存时,发生错误"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest 错误代码"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "内部的 JavaScript 错误"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "喔,真是令人尴尬。建议刷新您的浏览器,重新启动 TiddlyWiki"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "栏位名称 \"<$text text=<<fieldName>>/>\" 包含无效字符,栏位名称只能包含小写字母、数字、底线 (`_`)、 连字号 (`-`) 和小数点 (`.`)"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>正在从 ''<$text text={{!!_canonical_uri}}/>'' 加载外部条目 ...</p><p>如果此信息未消失,可能您使用的浏览器不支援此配置的外部条目。请参阅 http://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "登录 TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(无)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "依标签筛选︰"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "反向顺序"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "搜寻"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "搜寻︰"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "标签"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "条目"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "显示︰"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "排序︰"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "颜色"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "栏位"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(无)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "图标"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "原始文字"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "标签"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "工具"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified 文字"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "佚失条目 \"<$text text=<<currentTiddler>>/>\" - 点击 {{$:/core/images/edit-button}} 可创建此条目"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "否"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "~TiddlyWiki 官方插件程式库"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "此为在 tiddlywiki.com 的 ~TiddlyWiki 官方插件程式库。由核心团队维护的插件、主题和语言包。"
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "请保存 {{$:/core/ui/Buttons/save-wiki}} 并刷新页面 {{$:/core/ui/Buttons/refresh}} 允许更改插件才能生效"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "YYYY年0MM月0DD日"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "此为系统条目"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "包括系统条目"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "颜色"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "计数"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "图标"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "信息"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "标签"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "YYYY年0MM月0DD日 0hh:0mm"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "在此 TiddlyWiki 您有尚未保存的变更"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "是"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">关闭</$button>",
            "help": "http://tiddlywiki.com/",
            "text": "您的浏览器只支援手动保存。\n\n要保存更动的维基,右键点击下方的下载链结,选择\"下载文件\"或\"保存文件\",然后选择文件夹或文件名。\n\n//您可以藉由按一下 Ctrl 键(Windows)或 options/ alt 键(Mac OS X)中的链接,稍微加速操作。您不会被提示文件夹或文件名,您的浏览器可能无法辨认它的文件名 -- 在做其他任何事之前,您可能需要重新命名扩展名为 `.html` 的文件。//\n\n在智能型手机上,不允许下载文件,但您可以标记链结,然后从一台可以正常保存维基的台式机的维基同步你的书签。"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">关闭</$button>",
            "help": "http://tiddlywiki.com/static/SavingChanges.html",
            "text": "您对此 wiki 的变更需被保存为 ~TiddlyWiki HTML 文件。\n\n!!! 桌面版浏览器\n\n# 从''文件''菜单点选 ''另存为''\n# 选定文件名及保存位置\n#* 某些浏览器依然需要明确指定文件格式为 ''Webpage, HTML only'' 或类似的。\n# 关闭此页签\n\n!!! 智能手机版浏览器\n\n# 为此页建立书签\n#* 若您已设置 iCloud 或 Google 同步,该书签将自动与之前开启及保存于您电脑的书签同步。\n# 关闭此页签\n\n//若您再次于 Mobile Safari 开启该书签,将会再看到此信息。若要继续使用该文件,只需点击下列 ''关闭'' 按钮//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "YYYY年0MM月0DD日"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "日志"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "已保存 wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "开始保存 wiki"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "列表"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "筛选"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "以[[筛选表达式|http://tiddlywiki.com/static/Filters.html]]查找"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "所有匹配:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "条目名称匹配:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "查找"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "查找文本太短"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "默认"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "查找默认条目"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "标准"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "查找一般条目"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "系统"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "查找系统条目"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "全部"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "目录"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "草稿"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "缺失"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "更多"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "开启"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "孤立"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "最近"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "默认"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "系统"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "标签"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "未设标签"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "工具"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "类型"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "一个非线性的网页式笔记"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "我的 ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "依标签筛选的条目列表",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "宏的定义",
            "text": "\\define macroName(param1:\"默认值\",param2)\n宏的内容\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "4 x 3 的表格",
            "text": "|! | !一 | !二 | !三 | !四 |\n|! 1| | | | |\n|! 2| | | | |\n|! 3 | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "目录",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "主题调整"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "您可以调整 ''Vanilla'' 布景主题的某些样貌。"
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "选项"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "侧边栏布局"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "固定故事,浮动侧边栏"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "浮动故事,固定侧边栏"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "置顶标题"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "导致条目名称\"黏着\"于浏览器窗口的顶部。<br>注意︰此功能无法运作于 Chrome,且于 Firefox 中会导致一些布局问题"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "在代码区块中折行"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "设置"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "字型"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "代码字型"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "页面背景图像"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "页面背景图像附属"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "随条目卷动"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "固定于窗口"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "页面背景图像大小"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "自动"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "覆盖"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "包含"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "大小"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "字体大小"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "行高"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "条目本文的字体大小"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "条目本文的行高"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "故事左侧位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "故事河(条目区)的左边缘与页面左端的间距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "故事顶端位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "故事河(条目区)的上边缘与页面顶端的间距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "故事右侧位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "侧边栏的左边缘与页面左端的间距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "故事的宽度"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "故事河的整体宽度"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "条目宽度"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "在故事河内"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "侧边栏中断点"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "故事河和侧边栏会并排显示的最小页面宽度"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "侧边栏宽度"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "在浮动-固定布局中,侧边栏的宽度"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "高级"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "无信息"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "插件明细"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "此插件包含以下预设条目:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "默认条目状态"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 不是一个默认条目"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 是一个默认条目"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "此条目定义于插件 <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "已被一般条目覆写"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "栏位"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "列表"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "此条目无指定列表"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "被列于"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "此条目未出现于其他条目的列表中"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "参照"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "无条目链接至此"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "子条目"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "无任何条目以此条目之标题为标签"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "工具"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript 源码",
            "name": "application/javascript",
            "group": "开发者"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON 数据",
            "name": "application/json",
            "group": "开发者"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "数据字典",
            "name": "application/x-tiddler-dictionary",
            "group": "开发者"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF 图像",
            "name": "image/gif",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG 图像",
            "name": "image/jpeg",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG 图像",
            "name": "image/png",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "结构式矢量图",
            "name": "image/svg+xml",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "图标",
            "name": "image/x-icon",
            "group": "图像"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "静态样式",
            "name": "text/css",
            "group": "开发者"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML 标记",
            "name": "text/html",
            "group": "文本"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "纯文本",
            "name": "text/plain",
            "group": "文本"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "文本"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki 2",
            "name": "text/x-tiddlywiki",
            "group": "文本"
        },
        "$:/languages/zh-Hans/icon": {
            "title": "$:/languages/zh-Hans/icon",
            "type": "image/svg+xml",
            "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"1500\" height=\"1000\" viewBox=\"-5 -5 30 20\">\n<title>Flag of the People's Republic of China</title>\n<rect fill=\"#de2910\" x=\"-5\" y=\"-5\" width=\"30\" height=\"20\"/>\n<defs>\n<polygon id=\"s\" points=\"0,-513674 301930,415571 -488533,-158734 488533,-158734 -301930,415571\"\nfill=\"#ffde00\" transform=\"scale(0.0000019467600073)\"/>\n</defs>\n<use xlink:href=\"#s\" transform=\"scale(3)\"/>\n<use xlink:href=\"#s\" transform=\"translate(5,-3) rotate(-120.963756)\"/>\n<use xlink:href=\"#s\" transform=\"translate(7,-1) rotate(-98.130102)\"/>\n<use xlink:href=\"#s\" transform=\"translate(7,2) rotate(-74.054604)\"/>\n<use xlink:href=\"#s\" transform=\"translate(5,4) rotate(-51.3401917)\"/>\n</svg>\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/danielo/encryptTiddler/Changelog": {
            "title": "$:/plugins/danielo/encryptTiddler/Changelog",
            "text": "!! V2.1\n* Added control panel.\n* Added ability to batch encrypt and decrypt tiddlers.\n* Added some documentation an language strings.\n\n"
        },
        "$:/plugins/danielo/encryptTiddler/control-panel/batch-encrypt": {
            "title": "$:/plugins/danielo/encryptTiddler/control-panel/batch-encrypt",
            "caption": "Batch Encryption",
            "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n{{$:/plugins/danielo/encryptTiddler/language/batch}}\n\n<$linkcatcher to=\"$:/temp/encrypt/filter\">\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/encrypt/filter\" type=\"search\" tag=\"input\" default=\"\" placeholder=\"filter tiddlers\"/>\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/encrypt/filter\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n\n\n<$edit-text tag=\"input\" tiddler=\"$:/temp/password\" placeholder=\"password\" type=\"password\" default=\"\" col=\"4\"/><$encryptTiddler passwordTiddler=\"$:/temp/password\" filter={{$:/temp/encrypt/filter}}>\n<$button message=\"tw-encrypt-tiddler\">\nEncrypt\n</$button>\n<$button message=\"tw-decrypt-tiddler\">\nDecrypt\n</$button>\n</$encryptTiddler>\n</$reveal>\n</div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]!sort[]] -[[$:/core/Filters/SystemTags]] -[[$:/core/Filters/AllTags]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/encrypt/filter}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/encrypt/filter}} template=\"$:/plugins/danielo/encryptTiddler/ui/listItemTemplate\"/>\n</div>\n</$set>\n</$reveal>"
        },
        "$:/plugins/danielo/encryptTiddler/control-panel": {
            "title": "$:/plugins/danielo/encryptTiddler/control-panel",
            "tags": "$:/tags/ControlPanel",
            "caption": "Encrypt Tiddlers",
            "text": "\\define prefix(name) $:/plugins/danielo/encryptTiddler/control-panel/$name$\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]prefix[$:/plugins/danielo/encryptTiddler/control-panel/]]\" default=<<prefix \"batch-encrypt\">> state=\"$:/state/encryptTiddler/control-panel/tabs\">>"
        },
        "$:/plugins/danielo/encryptTiddler/crypt-batch-button": {
            "creator": "Danielo",
            "title": "$:/plugins/danielo/encryptTiddler/crypt-batch-button",
            "text": "<span title=\"Encrypt/Decrypt tiddler\" class=\"pc-batch-controls\">\n<$reveal state=<<qualify \"$:/state/encrypt\">> type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>\n<$encryptTiddler passwordTiddler=\"$:/temp/password\" filter={{$:/temp/encrypt/filter}}><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n<span class=\"tw-crypt-button\"> <$button message=\"tw-encrypt-tiddler\"  set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Encrypt</$button> <$button message=\"tw-decrypt-tiddler\" set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Decrypt</$button></span>\n</div>\n</$reveal></$encryptTiddler>\n</span>"
        },
        "$:/plugins/danielo/encryptTiddler/crypt-button": {
            "created": "20140405233000477",
            "creator": "Danielo",
            "modified": "20140608121335075",
            "tags": "$:/tags/ViewToolbar button encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/crypt-button",
            "type": "text/vnd.tiddlywiki",
            "text": "<span title=\"Encrypt/Decrypt tiddler\"><$transclude tiddler=\"$:/plugins/danielo/encryptTiddler/openPopup\"/>\n</span><$encryptTiddler passwordTiddler=\"$:/temp/password\"><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n<span class=\"tw-crypt-button\"> <$list filter=\"[all[current]!has[encrypted]]\"> <$button message=\"tw-encrypt-tiddler\"  set=\"$:/state/encrypt\" setTo=\"\" >Encrypt</$button></$list><$list filter=\"[is[current]has[encrypted]]\"> <$button message=\"tw-decrypt-tiddler\" set=\"$:/state/encrypt\" setTo=\"\" >Decrypt</$button></$list></span>\n</div>\n</$reveal></$encryptTiddler>\n"
        },
        "$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler": {
            "created": "20140406153742691",
            "creator": "pepito",
            "description": "add the hability to encrypt individual tiddlers",
            "modified": "20141029152631265",
            "modifier": "Danielo Rodriguez",
            "tags": "index plugins",
            "title": "$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler",
            "type": "text/vnd.tiddlywiki",
            "caption": "readme",
            "text": "This plugin adds the ability to encrypt your tiddlers individually. This have several advantages:\n\n* You can specify a different password for each tiddler if you want.\n* You don't have to encrypt your whole wiky.\n* If you forget your password, you only lose a tiddler.\n* It's possible to edit the tiddler content , tags and fields ''except the encrypt field'' after encryption. Decrypting your tiddler will restore it to its original state when you encrypted it. This way you can hide the encrypted tiddlers as a \"different\" thing.\n* You can even encrypt images.\n* You can have sensible data in a day to day wiky.\n* I didn't try this, but theoretically you can apply double encryption by encrypting your wiki too."
        },
        "$:/plugins/danielo/encryptTiddler/encrypttiddler.js": {
            "text": "/*\\\ntitle: $:/plugins/danielo/encryptTiddler/encrypttiddler.js\ntype: application/javascript\nmodule-type: widget\n\nencrypttiddler widget\n\n```\n\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar encryptTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t\t{type: \"tw-encrypt-tiddler\", handler: \"handleEncryptevent\"},\n\t\t\t{type: \"tw-decrypt-tiddler\", handler: \"handleDecryptevent\"},\n\t\t\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nencryptTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nencryptTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tconsole.log(\"Render\");\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nencryptTiddlerWidget.prototype.execute = function() {\n\t// Get attributes\n\t this.tiddlerTitle=this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t this.filter=this.getAttribute(\"filter\",undefined);\n \t this.passwordTiddler=this.getAttribute(\"passwordTiddler\");\n\t// Construct the child widgets\n\tconsole.log(this.targetTiddler);\n\t\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nencryptTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.filter) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nencryptTiddlerWidget.prototype.getTiddlersToProcess = function(){\n\tif(this.filter){ //we have a filter to work with\n\t\treturn this.wiki.filterTiddlers(this.filter);\n\t}else{ //single tiddler case\n\t\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t\treturn tiddler? [tiddler.fields.title] : [];\n\t}\n};\n\nencryptTiddlerWidget.prototype.handleEncryptevent = function(event){\n\tvar password = this.getPassword();\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields={text:\"!This is an encrypted Tiddler\",\n\t\t\t\t\t\t\t\t  encrypted:self.encryptFields(title,password)};\n\t\t\tself.saveTiddler(tiddler,fields);\n\t\t});\n\n\t}else{\n\t\tconsole.log(\"We did not find any tiddler to encrypt or password not set!\")\n\t}\n};\n\nencryptTiddlerWidget.prototype.handleDecryptevent = function(event){\n\tvar password =this.getPassword();\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields = self.decryptFields(tiddler,password);\n\t\t\tif(fields)self.saveTiddler(tiddler,fields);\n\t\t});\n\t}\n};\n\nencryptTiddlerWidget.prototype.saveTiddler=function(tiddler,fields){\n\tthis.wiki.addTiddler(  new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,this.clearNonStandardFields(tiddler), fields ) )\n}\n\nencryptTiddlerWidget.prototype.encryptFields = function (title,password){\n\tvar jsonData=this.wiki.getTiddlerAsJson(title);\n\treturn $tw.crypto.encrypt(jsonData,password);\n\n};\n\nencryptTiddlerWidget.prototype.decryptFields = function(tiddler,password){\n\t\tvar JSONfields =$tw.crypto.decrypt(tiddler.fields.encrypted,password);\n\t\tif(JSONfields!==null){\n\t\t\treturn JSON.parse(JSONfields);\n\t\t}\n\t\tconsole.log(\"Error decrypting \"+tiddler.fields.title+\". Probably bad password\")\n\t\treturn false\n};\n\nencryptTiddlerWidget.prototype.getPassword = function(){\n\tvar tiddler=this.wiki.getTiddler(this.passwordTiddler);\n\tif(tiddler){\n\t\tvar password=tiddler.fields.text;\n\t\tthis.saveTiddler(tiddler); //reset password tiddler\n\t\treturn password;\n\t}\n\n\treturn false\n};\n\n// This function erases every field of a tiddler that is not standard and also\n// the text field\nencryptTiddlerWidget.prototype.clearNonStandardFields =function(tiddler) {\n\tvar standardFieldNames = \"title tags modified modifier created creator\".split(\" \");\n\t\tvar clearFields = {};\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(standardFieldNames.indexOf(fieldName) === -1) {\n\t\t\t\tclearFields[fieldName] = undefined;\n\t\t\t}\n\t\t}\n\t\tconsole.log(\"Cleared fields \"+JSON.stringify(clearFields));\n\t\treturn clearFields;\n};\n\nexports.encryptTiddler = encryptTiddlerWidget;\n\n})();",
            "title": "$:/plugins/danielo/encryptTiddler/encrypttiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/danielo/encryptTiddler/Filters/encrypted-tiddlers": {
            "title": "$:/plugins/danielo/encryptTiddler/Filters/encrypted-tiddlers",
            "description": "All encrypted tiddlers",
            "filter": "[has[encrypted]]",
            "tags": "$:/tags/Filter"
        },
        "$:/plugins/danielo/encryptTiddler/Filters/normal-unencrypted-tiddlers": {
            "title": "$:/plugins/danielo/encryptTiddler/Filters/normal-unencrypted-tiddlers",
            "filter": "[!is[system]!has[encrypted]]",
            "description": "Non-encrypted normal tiddlers",
            "tags": "$:/tags/Filter"
        },
        "$:/plugins/danielo/encryptTiddler/language/batch": {
            "title": "$:/plugins/danielo/encryptTiddler/language/batch",
            "text": "Use below controls to encrypt or decrypt a bunch of tiddlers. Encryption ''controls are hidden'' until you type something in the search box. All listed tiddlers will be affected. The presence of a small padlock (<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>) next to the tiddler title indicates that particular tiddler is already encrypted."
        },
        "$:/plugins/danielo/encryptTiddler/ui/listItemTemplate": {
            "title": "$:/plugins/danielo/encryptTiddler/ui/listItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n<$list filter=\"[all[current]has[encrypted]]\">\n<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>\n</$list>\n</$link>\n</div>"
        },
        "$:/plugins/danielo/encryptTiddler/openPopup": {
            "created": "20140406151910358",
            "creator": "Danielo",
            "modified": "20140608121417975",
            "modifier": "pepito",
            "tags": "button encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/openPopup",
            "type": "text/vnd.tiddlywiki",
            "text": "<$reveal state=\"$:/state/encrypt\" type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>"
        },
        "$:/plugins/danielo/encryptTiddler/styles": {
            "created": "20140406110705085",
            "creator": "pepito",
            "modified": "20140608121510064",
            "modifier": "pepito",
            "tags": "$:/tags/Stylesheet encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/styles",
            "type": "text/plain",
            "text": ".tw-password-field {\n\tdisplay: inline-block;\n\twidth: 55%;\n  font-size:1em;\n  line-height:0;\n  margin:0;\n\tpadding-left:7%;\n}\n\n.pc-batch-controls .tw-crypt-dropdown{\n\tright: 0px;\n}\n\n.pc-batch-controls{\n\t\tposition:relative;\n}\n\n.pc-listItem-lock svg{\n\theight: 1em;\n\twidth: 1em;\n\tfill: #aaaaaa;\n}\n\n/*It is for use in combination with tc-block-dropdown */\n.tw-crypt-dropdown{\n      line-height:0;\n\t\t\tpadding-left:5px;\n\t\t\t}\n\n.tw-password-field input{\n       font-size:0.5em;\n\n}\n\n.tw-crypt-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n.tw-crypt-button button{\n\tfont-size:0.5em;\n}\n"
        },
        "$:/plugins/danielo/encryptTiddler/unlocked": {
            "created": "20140406101339943",
            "creator": "danielo515",
            "modified": "20140608121532690",
            "modifier": "danielo515",
            "tags": "encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/unlocked",
            "type": "text/vnd.tiddlywiki",
            "text": "<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tc-image-button\"\n\t viewBox=\"0 0 100 100\" style=\"enable-background:new 0 0 100 100;\" xml:space=\"preserve\">\n<g>\n\t<path d=\"M77.555,50H35.304V31.63c0-4.057,1.435-7.521,4.305-10.391c2.87-2.87,6.333-4.305,10.391-4.305\n\t\tc4.056,0,7.52,1.435,10.39,4.305s4.305,6.335,4.305,10.391c0,0.996,0.363,1.857,1.091,2.583c0.727,0.729,1.588,1.09,2.583,1.09\n\t\th3.674c0.995,0,1.856-0.361,2.583-1.09c0.727-0.727,1.091-1.588,1.091-2.583c0-7.079-2.517-13.136-7.549-18.17\n\t\tC63.136,8.428,57.08,5.912,50,5.912c-7.081,0-13.137,2.516-18.169,7.548c-5.033,5.034-7.549,11.091-7.549,18.17V50h-1.837\n\t\tc-1.531,0-2.833,0.536-3.904,1.608c-1.072,1.072-1.607,2.372-1.607,3.902v33.067c0,1.532,0.535,2.832,1.607,3.904\n\t\tc1.071,1.072,2.372,1.608,3.904,1.608h55.11c1.53,0,2.832-0.536,3.904-1.608c1.071-1.072,1.607-2.372,1.607-3.904V55.51\n\t\tc0-1.529-0.536-2.83-1.607-3.902C80.387,50.536,79.085,50,77.555,50z M54.315,72.937V83.72c0,2.173-1.762,3.935-3.935,3.935H49.62\n\t\tc-2.173,0-3.935-1.762-3.935-3.935V72.937c-2.31-1.443-3.852-4.001-3.852-6.925c0-4.511,3.657-8.167,8.167-8.167\n\t\ts8.167,3.657,8.167,8.167C58.167,68.937,56.625,71.495,54.315,72.937z\"/>\n</g>\n</svg>\n"
        }
    }
}




{}


{
    "originalVersion": "0.13.4+9665",
    "dataStructureState": "0.11.0",
    "showWelcomeMessage": false
}
{
    "tiddlers": {
        "$:/plugins/telmiger/EditorCounter/counter.js": {
            "created": "20170207230719552",
            "creator": "Thomas Elmiger",
            "text": "/*\\\ntitle: $:/plugins/telmiger/EditorCounter/counter.js\ntype: application/javascript\nmodule-type: widget\n\nversion: 0.6.3\n\nCount the number of words or characters in a tiddler/field/input string – Autosave while editing\n\nUsage: see the plugin’s readme.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CounterWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCounterWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM – reset autosave attributes\n*/\nCounterWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// autosave attributes\n\tthis.diffTotal = 0;\n\tthis.saveNow = false;\n\t// calculate state \n\tthis.execute();\n\tif(this.mode == \"autosave\") {\n\t\t// store the number of last saved characters\n\t\tthis.lastSavedCount = this.currentCount;\n\t\tthis.diffLastCount = this.currentCount;\n\t} \n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tvar domNode = this.document.createElement(\"span\");\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCalculate the numbers\n*/\nCounterWidget.prototype.getLength = function(text) {\n\tvar result = 0;\n\tswitch(this.mode) {\n\t\tcase \"character\":\n\t\t\tresult = text.length.toString();\n\t\t\tbreak;\n\t\tcase \"autosave\":\n\t\t\tresult = text.length.toString();\n\t\t\t// sum up difference since last count\n\t\t\tthis.diffTotal += this.checkAutosave(result);\n\t\t\t// check saving limit\n\t\t\tthis.saveNow = (this.diffTotal >= this.saveLimit) ? true : false;\n\t\t\tbreak;\n\t\tcase \"word\":\n\t\t\tif(text.match(/\\w+/g)) {\n\t\t\t\tresult = text.match(/\\w+/g).length.toString();\n\t\t\t} else {\n\t\t\t\tresult = 0;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault: // \"?!\"\n\t\t\tresult = \"mode undefined\";\n\t}\n\treturn result;\n}\n\n/*\nSet autosave \n*/\nCounterWidget.prototype.checkAutosave = function(textlength) {\n\t// calculate difference since last count\n\tthis.diffChars = Math.abs(textlength - this.diffLastCount);\n\t// store text length\n\tthis.diffLastCount = textlength;\n\treturn this.diffChars;\n}\n\n/*\nGet the colors as an array\n*/\nCounterWidget.prototype.getColors = function() {\n\tvar color_array1 = this.colors.split(',');\n\tvar i;\n\tcolor_array1.sort(function sortfunction(a, b){\n\t\treturn a.split(':')[1] - b.split(':')[1];\n\t});\n\tfor(i = 0; i < color_array1.length; i++) {\n\t\tthis.color_array[i] = color_array1[i].split(':')[0];\n\t\tthis.count_array[i] = color_array1[i].split(':')[1];\n\t}\n}\n\n/*\nGet the numbers\n*/\nCounterWidget.prototype.getNumber = function() {\n\t// Count letters or words as appropriate.\n\tvar result = 0;\n\tif(this.countText) {\n\t\t// text supplied as parameter \n\t\tresult = this.getLength(this.countText);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.tiddler);\n\t\tvar fieldContent = tiddler.getFieldString(this.field);\n\t\tif(fieldContent) {\n\t\t\tresult = this.getLength(fieldContent);\n\t\t} else {\n\t\t\tresult = 0;\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nCounterWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.mode = this.getAttribute(\"mode\",\"character\");\n\tthis.saveLimit = this.getAttribute(\"savelimit\",200);\n\tthis.tiddler = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.field = this.getAttribute(\"field\",\"text\");\n\tthis.countText = this.getAttribute(\"text\");\n\tthis.colors = this.getAttribute(\"colors\");\n\tthis.stateTiddler = this.getAttribute(\"colorState\");\n\t// Count letters or words as appropriate.\n\tthis.currentCount = this.getNumber();\n\tthis.diffChars = 0;\n\t//Find the color cut-offs, if any.\n\tif(this.colors) {\n\t\tthis.color_array = [];\n\t\tthis.count_array = [];\n\t\tvar i;\n\t\tthis.getColors();\n\n\t\t// set the color if the counter is high enough. The color with the largest value that is less than this.currentCount wins.\n\t\tfor(i = 0; i < this.color_array.length; i++) {\n\t\t\tif(Number(this.currentCount) >= Number(this.count_array[this.color_array.length - 1 - i])) {\n\t\t\t\tif(this.stateTiddler) {\n\t\t\t\t\tthis.wiki.setText(this.stateTiddler,\"text\",undefined,this.color_array[this.color_array.length -1 - i]);\n\t\t\t\t}\n\t\t\t\tthis.currentCount = '@@color:' + this.color_array[this.color_array.length -1 - i] + ';' \n\t\t\t\t\t+ this.currentCount + '@@';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(this.stateTiddler && i === this.color_array.length-1) {\n\t\t\t\tthis.wiki.setText(this.stateTiddler,\"text\",undefined,'');\n\t\t\t}\n\t\t}\n\t}\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",this.currentCount,{parseAsInline: true});\n\tvar parseTreeNodes = parser ? parser.tree : [];\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCounterWidget.prototype.refresh = function(changedTiddlers) {\n\tvar refreshed = false;\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount && this.mode !== \"autosave\") {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\trefreshed = true;\n\t}\n\tif(this.saveNow) {\n\t\t// Trigger an autosave and refresh\n\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\tthis.refreshSelf();\n\t\trefreshed = true;\n\t} \n\treturn refreshed;\n};\n\nexports[\"editor-counter\"] = CounterWidget;\n\n})();\n",
            "type": "application/javascript",
            "title": "$:/plugins/telmiger/EditorCounter/counter.js",
            "tags": "EditorCounter",
            "module-type": "widget",
            "modifier": "Thomas Elmiger",
            "modified": "20170513200904421"
        },
        "$:/plugins/telmiger/EditorCounter/icon": {
            "created": "20170209074404836",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64.003\" height=\"64.003\" viewBox=\"-500.5 395.5 64.003 64.003\"><path d=\"M-468.5 396.5l26.426 15.5v31l-26.425 15.5-26.426-15.5v-31l26.427-15.5z\"/><path fill=\"#FFF\" d=\"M-485.996 419.088h34.99v16.824h-34.99z\"/><path fill=\"#E2001A\" d=\"M-468.5 405.5c-12.15 0-22 9.85-22 22s9.85 22 22 22 22-9.85 22-22-9.85-22-22-22zm13.11 21.637c-1.022.682-2.674 1.023-4.954 1.023h-2.838c-1.505 0-2.598.3-3.28.9-.68.6-1.22 1.804-1.622 3.615 0 0-.063.526-.178.526s-.13-.31-.184-.562c-.056-.263-.14-.59-.256-.977-.224-.758-.447-1.332-.67-1.72-.27-.482-.613-.87-1.024-1.165-.412-.294-.883-.47-1.413-.528l-.74-.088h-3.637c-2.178 0-3.796-.343-4.855-1.024-1.764-1.12-2.71-3.24-2.842-6.357-.01-.25 0-.48.047-.772h.208c.142 1.41 1.304 2.502 2.158 3.274.853.77 2.222 1.155 4.104 1.155h3.3c1.896 0 3.28.436 4.158 1.306.79.786 1.31 2.017 1.56 3.69.028.183.012.263.064.263.053 0 .04-.09.06-.278.253-2.173 1.094-3.627 2.522-4.363.88-.46 2.28-.676 4.196-.652l2.257.035c1.527.023 2.814-.278 3.86-.908 1.046-.63 2.285-1.803 2.425-3.52h.21c.065.17.057.56.045.828-.13 3.105-1.023 5.206-2.68 6.3z\"/></svg>",
            "type": "image/svg+xml",
            "title": "$:/plugins/telmiger/EditorCounter/icon",
            "tags": "",
            "modified": "20170209074423973"
        },
        "$:/plugins/telmiger/EditorCounter/readme": {
            "created": "20170209064758307",
            "creator": "Thomas Elmiger",
            "text": "!! Count Your Texts & Autosave\nThe [[EditorCounter plugin|https://tid.li/tw5/plugins.html#EditorCounter]] provides counters for words and characters in the edit view of your tiddlers. And it can save your texts automagically in the background while you work.\n\n!!! The counters\n* In edit mode users can see stats concerning the tiddler’s text and title fields. The numbers are updated whenever they pause typing.\n* Counters for words and characters can be activated in the [[plugin settings|$:/plugins/telmiger/EditorCounter/settings]].\n* The colours of the counters change at some predefined numbers.\n** Settings for colors and color limits are not available in the plugin configuration. <br>Workaround: edit [[the template|$:/plugins/telmiger/EditorCounter/EditTemplate]].\n\n!!! Autosave\n* When activated in the [[plugin settings|$:/plugins/telmiger/EditorCounter/settings]], //autosave// will try to save the wiki in the background during editing: whenever a predefined number of characters has been added or removed, a save is triggered.\n** As an option you can show a checkbox in the editor to pause/activate automatic saving.\n\n!!! Parameters\n\n|!Parameter |!Description |\n|colors |Optionally, define an array of color and number pairs to set minimal color limits. |\n|colorState |Optional state tiddler to save the color value. |\n|field |Calculate for the text in this field. |\n|mode |Entity to calculate: //word// or //character// or //autosave//. Defaults to \"character\". |\n|savelimit |A number of character changes after which //autosave// is performed. Default value: 200 |\n|text |Calculate this text. |\n|tiddler |Optional title of a tiddler to take the field from. Defaults to current tiddler. |\n\n!!! Widget usage\nThis plugin is based on a similar [[solution by Jed Carty|$:/plugins/telmiger/EditorCounter/credits]] – many thanks! \n\nThe widget can be used in other contexts than the plugin. The usage would be very similar to [[Jed’s examples on ooktech.com|http://ooktech.com/jed/ExampleWikis/WordCount/#%24%3A%2Fplugins%2Finmysocks%2FWordCount%2FWord%20Count%20Widget]] \n\nKnown differences: instead of `<$word-count` start with `<$editor-counter`. Default mode is //character//.\n\n!!!! Widget examples\n\n```\n<$editor-counter tiddler=SomeTiddler field=some_field mode=word/>\n<$editor-counter tiddler=SomeTiddler mode=character colors=\"blue:10,green:50,red:100\"/>\n<$editor-counter text=\"some text string\" mode=character colorState=\"$:/state/someTextColor\" colors=\"blue:10,green:50\"/>\n<$editor-counter mode=autosave savelimit=300/>\n```\n",
            "title": "$:/plugins/telmiger/EditorCounter/readme",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170513193917595"
        },
        "$:/plugins/telmiger/EditorCounter/settings": {
            "text": "!! Counter Settings\nActivate counters here. Your choice will be visible below the text field in edit mode.\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/characters\" field=\"text\" checked=\"yes\" unchecked=\"no\"> Character counter</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/words\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Word counter</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/title\" field=\"text\" checked=\"yes\" unchecked=\"no\"> Title characters counter</$checkbox>\n\n!! Autosave Settings\nAutosave will try to save your wiki in the background after adding or removing 200 characters. You can change this value below.\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Autosave</$checkbox>\n every <$edit-text tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave\" field=\"limit\" size=\"4\"/> characters.\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave-pause\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Show checkbox to start/pause autosave in editor</$checkbox>\n\n<br>''\n\n<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Hint}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>\n\n''<br>\n\nNote: ''All'' characters are counted as entered in the editor, regardless if they are invisible in the result or if they produce more text based on data or transclusion.",
            "title": "$:/plugins/telmiger/EditorCounter/settings",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170513185158209",
            "creator": "Thomas Elmiger",
            "created": "20170208062643245"
        },
        "$:/plugins/telmiger/EditorCounter/settings/characters": {
            "created": "20170208063042363",
            "creator": "Thomas Elmiger",
            "text": "yes",
            "title": "$:/plugins/telmiger/EditorCounter/settings/characters",
            "modifier": "Thomas Elmiger",
            "modified": "20170209071527563",
            "tags": "EditorCounter"
        },
        "$:/plugins/telmiger/EditorCounter/settings/title": {
            "created": "20170208211524752",
            "creator": "Thomas Elmiger",
            "text": "yes",
            "title": "$:/plugins/telmiger/EditorCounter/settings/title",
            "modified": "20170209071517463",
            "modifier": "Thomas Elmiger",
            "tags": "EditorCounter"
        },
        "$:/plugins/telmiger/EditorCounter/settings/words": {
            "text": "no",
            "title": "$:/plugins/telmiger/EditorCounter/settings/words",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170216003921105",
            "creator": "Thomas Elmiger",
            "created": "20170208063040756"
        },
        "$:/plugins/telmiger/EditorCounter/EditTemplate": {
            "text": "<span style=\"display:block; margin-top:-18px; margin-bottom:18px;\">\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/characters\">\n<$editor-counter tiddler=<<currentTiddler>> colors='black:0,gray:140,green:300,indianred:800,red:1600'/> characters </$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/autosave\">\n<span class=\"tc-muted\"><span class=\"tc-dirty-indicator\">•</span> <$editor-counter mode=autosave savelimit={{$:/plugins/telmiger/EditorCounter/settings/autosave!!limit}}/> saved</span>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/characters\"> &nbsp;&nbsp; \n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/words\">\n<$editor-counter mode=word colors='black:0,gray:200,green:300,indianred:1000,red:2000'/> words &nbsp;&nbsp; \n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/autosave-pause\">\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Autosave</$checkbox>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/autosave\">\n (uncheck to pause)\n</$reveal>\n</$reveal>\n</span>\n\n<!--\n* Show the number of characters and/or words entered in edit mode.\n* Show the number of characters at last autosave (autosave at a character difference as defined in settings).\n-->",
            "title": "$:/plugins/telmiger/EditorCounter/EditTemplate",
            "tags": "$:/tags/EditTemplate EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170513184811368",
            "list-before": "$:/core/ui/EditTemplate/type",
            "creator": "Thomas Elmiger",
            "created": "20170126185919666"
        },
        "$:/plugins/telmiger/EditorCounter/TitleTemplate": {
            "text": "<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/title\">\n<span title=\"Title length\" style=\"display:block; text-align:right; margin: -22px 3px 2px 0; opacity:0.6;\">\n<$editor-counter tiddler=<<currentTiddler>> field=\"draft.title\" colors='green:20,indianred:30,red:40'/> chars\n</span>\n</$reveal>\n\n<!--\nShow the number of characters in the title\n-->",
            "title": "$:/plugins/telmiger/EditorCounter/TitleTemplate",
            "tags": "$:/tags/EditTemplate EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170303172302480",
            "list-before": "$:/core/ui/EditTemplate/tags",
            "creator": "Thomas Elmiger",
            "created": "20170213190419968"
        },
        "$:/plugins/telmiger/EditorCounter/settings/autosave": {
            "created": "20170303132537685",
            "creator": "Thomas Elmiger",
            "text": "no",
            "title": "$:/plugins/telmiger/EditorCounter/settings/autosave",
            "modifier": "Thomas Elmiger",
            "modified": "20170304110651863",
            "limit": "200",
            "tags": "EditorCounter"
        },
        "$:/plugins/telmiger/EditorCounter/credits": {
            "text": "!! Credits\n\nMany thanks to Jed for his blueprint widget and demo site, originally on http://ooktech.com/jed/ExampleWikis/WordCount/ as well as to Skeeve who obviousliy contributed the original macro version Jed based his solution on.\n\n* http://ooktech.com/TiddlyWiki/\n* http://ooktech.com/TiddlyWiki/WordCount/\n\n//Powered by the fantastic TiddlyWiki community.//\n",
            "title": "$:/plugins/telmiger/EditorCounter/credits",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170304104718649",
            "creator": "Thomas Elmiger",
            "created": "20170304102433909"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/telmiger/lib/language": {
            "text": "$:/plugins/telmiger/lib/languages/en-GB",
            "created": "20160820133735127",
            "creator": "Thomas Elmiger",
            "modified": "20160917153239827",
            "modifier": "Thomas Elmiger",
            "priority": "2",
            "tags": "ToDoDone ToDoComponents",
            "title": "$:/plugins/telmiger/lib/language",
            "todo-deadline": "",
            "todo-done": "20160820234641 20160821004547"
        },
        "$:/plugins/telmiger/lib/languages/en-GB": {
            "created": "20160820190056478",
            "creator": "Thomas Elmiger",
            "text": "ID:English\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl-info: DDth MMM YYYY at hh12:0mmpm\ndate-deadline-tmpl: YYYY-0MM-0DD\n<!-- strings: strigs start here -->\nAdd-tag: Add tag\nAdd-tags-from-the-list: Add tags from the list\nall: all\nall-projects: all projects\narchive: archive\nAre-you-sure?: Are you sure?\nChange-deadline: Change deadline\nchange-priority: Change priority\nchange-priority-to: set priority to\nClick-to-edit-title: Click the title to edit!\nclose: Close\nClose: Close\ndays-back: days back\nDetails: Show details\nDo-it-again: Do it again\nDo-now: Do now\nDone: Done\nEdit: Edit\nHide-list: Hide list\nlate: late\nManage-tags: Manage tags\nMove-down: Move down\nMove-up: Move up\nNew-ToDo-Item: New ToDo Item\nNext week: Next week\nno.: no.\nNothing-to-do-?: Nothing to do? Create a task using this button\nPick-a-task-: Pick a task from the list below using this button\nPrint-window-hint: Open in new window to print\nProject: Project\nRecycle: Recycle\nRelax-Nothing-to-do: Relax. Nothing to do.\nRemove-deadline: Remove deadline\nRemove-tags?: Remove tags?\nReset: Reset\nsearch: search …\nSend-it-down: Send it down\nSet-deadline: Set deadline\nShow-list: Show list\nSort-by-deadline: Sort by deadline\nSort-by-modification: Sort by last modification\nSort-by-priority: Sort all by priority\nSort-by-title: Sort all by title\nsorted-by-deadline: sorted by deadline\nsorted-by-modification: sorted by last modification\nsorted-by-priority: sorted by priority\nsorted-by-title: sorted by title\nSwitch-to-edit-mode: Switch to edit mode\nSwitch-to-safe-mode: Switch to save mode\nTake-it-up: Take it up!\nThis-is-done: This is done\nThis-week: This week\ntoday: today\nToday: Today\nToDo: ToDo\nToDo-template-title: ToDo Item\nToDo-template-text: Motivation: Description * Tests/Acceptance criteria\nTomorrow: Tomorrow\nUuups: Uuups!\n<!-- comments: comments -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121501",
            "title": "$:/plugins/telmiger/lib/languages/en-GB",
            "tags": "Translation ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170713195435035"
        },
        "$:/plugins/telmiger/lib/telang": {
            "text": "\\define telang(term)\n<$transclude tiddler={{$:/plugins/telmiger/lib/language}} index=\"$term$\"><$transclude tiddler=\"$:/plugins/telmiger/lib/languages/en-GB\" index=\"$term$\"/></$transclude>\n\\end\n",
            "created": "20160917153627850",
            "creator": "Thomas Elmiger",
            "modified": "20160917160018287",
            "modifier": "Thomas Elmiger",
            "priority": "2",
            "tags": "ToDoDone ToDoComponents $:/tags/Macro",
            "title": "$:/plugins/telmiger/lib/telang",
            "todo-deadline": "",
            "todo-done": "20160820234641 20160821004547"
        },
        "$:/plugins/telmiger/lib/telements/buttons": {
            "created": "20160816192735231",
            "creator": "Thomas Elmiger",
            "text": "\\define teBtnDelete1(tiddler:\"<<currentTiddler>>\",btntext:\"{{$:/core/images/delete-button}}\",tooltip:\"delete\",tip:\"really?\",class:\"\")\n<$vars tid=$tiddler$ btnclass=\"te-btn-action $class$\">\n<$button popup=\"$:/DeletePopupState\" class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\">$btntext$</$button>\n<$reveal type=\"popup\" position=\"left\" state=\"$:/DeletePopupState\" class=\"te-popup-dark\">\n<$button class=\"te-delete $class$\" tooltip=\"$tip$\">\n<$action-deletetiddler $tiddler=<<tid>>/>\n<$action-deletetiddler $tiddler=\"$:/DeletePopupState\"/>\nConfirm deletion\n</$button> \n<$button class=\"te-secondary-btn $class$\">\n<$action-deletetiddler $tiddler=\"$:/DeletePopupState\"/>\nCancel\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n\\define teBtnDelete(class:\"\")\n<$vars btnclass=\"te-btn-action te-btn-delete $class$\">\n<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<btnclass>>>\n{{$:/core/images/delete-button}}\n</$button>\n</$vars>\n\\end\n\n\\define teBtnHint(btntext,message,tooltip,tip,class:\"\")\n<$set name=\"btnclass\" value=\"te-hint $class$\">\n<$button class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\" message=\"$message$\">\n$btntext$\n<span class=\"te-tip\">$tip$</span>\n</$button>\n</$set>\n\\end\n\n\\define teBtnTagListops(btntext,add-remove,tooltip,tip:\"_false_\",class:\"\")\n<$vars tip=\"\"\"$tip$\"\"\" btnclass=\"te-btn-action te-tag-listops $class$\">\n<$set name=\"mytip\" filter=\"[<tip>removeprefix[_false_]]\" emptyValue=\"\"\"<span class=\"te-tip\">$tip$</span>\"\"\">\n<$button class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\">\n<$wikify name=\"timestampState\" text=\"{{$:/config/TimestampDisable}}\">\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$action-listops $tags=\"$add-remove$\" />\n$btntext$\n<<mytip>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=<<timestampState>>/>\n</$wikify>\n</$button>\n</$set>\n</$vars>\n\\end\n\n\\define teBtnEdit(sendmessage:\"tm-edit-tiddler\",class:\"\")\n<$wikify name=\"tt\" text=<<telang Edit>>>\n   <$button tooltip=<<tt>> class=\"te-btn-action te-edit $class$\">\n<$action-sendmessage $message=\"$sendmessage$\" $param=<<currentTiddler>> />\n{{$:/core/images/edit-button}}\n</$button>\n</$wikify>\n\\end\n\n\\define teBtnEditShowModified(sendmessage:\"tm-edit-tiddler\",class:\"\")\n<$wikify name=\"tt\" text=<<telang Edit>>>\n   <$button tooltip=<<tt>> class=\"te-btn-action te-edit $class$\">\n<$action-sendmessage $message=\"$sendmessage$\" $param=<<currentTiddler>> />\n{{$:/core/images/edit-button}}<span class=\"te-tip\"><$view tiddler=<<currentTiddler>> field=\"modified\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm\"/></span>\n</$button>\n</$wikify>\n\\end\n\n\\define teBtnPrio(btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip,class:\"\")\n<$set name=\"nextprio\" filter=\"\"\"[list[$prioritylist$]nth[$priority$]]\"\"\">\n<$wikify name=\"next\" text=\"$tooltip$ <<nextprio>>\">\n<$button tooltip=<<next>> class=\"te-btn-action te-prio prio$priority$ $class$\">\n<$action-listops $field=\"priority\" $filter=<<nextprio>>/>\n$btntext$<span class=\"te-prionr\">$priority$</span>\n</$button>\n</$wikify>\n</$set>\n\\end\n\n\\define teBtnPrioPopup(tiddler,btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip:\"change priority\",class:\"\")\n<$set name=\"qualstate\" value=<<qualify \"$:/state/reveal_priopop_$tiddler$_\">> >\n<$reveal type=\"nomatch\" state=<<qualstate>> text=\"show\" class=\"te-btn-reveal\">\n<$button tooltip=\"\"\"$tooltip$\"\"\" set=<<qualstate>> setTo=\"show\" class=\"te-btn-action te-prio prio$priority$ $class$\">\n$btntext$<span class=\"te-prionr\">$priority$</span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"show\" class=\"te-btn-reveal\">\n<$button tooltip=\"close popup\" class=\"te-btn-action te-prio prio$priority$ $class$\">\n<$action-deletetiddler $tiddler=<<qualstate>>/>\n$btntext$<span class=\"te-prionr\">$priority$</span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"show\">\n<$wikify name=\"tt\" text=\"set prio\">\n  <$macrocall $name=\"tePrioList\" tiddler=\"\"\"$tiddler$\"\"\" icon=\"{{$:/core/images/star-filled}}\" priorityfield=\"priority\" prioritylist=\"\"\"$prioritylist$\"\"\" tooltip=<<tt>> class=\"\" state=<<qualstate>>/>\n</$wikify>\n</$reveal>\n</$set>\n\\end\n\n\\define tePrioList(tiddler,prioritylist:\"_false_\",priorityfield:\"_false_\",icon:\"{{$:/core/images/star-filled}}\",state)\n<$vars priotid=\"\"\"$prioritylist$\"\"\" tid=\"\"\"$tiddler$\"\"\">\n<$set name=\"prioOld\" filter=\"[<currentTiddler>get[$priorityfield$]]\">\n<div class=\"te-prio-popup\">\n<ul class=\"te-prio-list\">\n<$list filter=\"[list<priotid>sort[]] -[<prioOld>]\" variable=\"prio\" emptyValue=\"error: no priorities in list field of $tiddler$\">\n<li>\n    <$macrocall $name=\"teBtnPrioSet\" tiddler=<<tid>> priority=<<prio>> priorityfield=\"\"\"$priorityfield$\"\"\" tooltip=\"set as prio\" icon=\"\"\"$icon$\"\"\" class=\"\" state=\"\"\"$state$\"\"\"/>\n</li>\n</$list>\n</ul>\n</div>\n</$set>\n</$vars>\n\\end\n\n\\define teBtnPrioSet(tiddler,priority,priorityfield,tooltip,icon,class:\"\",state)\n<$vars prio=\"\"\"$priority$\"\"\" qualstate=\"\"\"$state$\"\"\">\n<$button tooltip=\"\"\"$tooltip$\"\"\" class=\"te-btn-action te-prio prio$priority$ $class$\">\n<$wikify name=\"timestampState\" text=\"{{$:/config/TimestampDisable}}\">\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$action-listops $tiddler=\"\"\"$tiddler$\"\"\" $field=$priorityfield$ $filter=<<prio>>/>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=<<timestampState>>/>\n<$action-deletetiddler $tiddler=<<qualstate>>/>\n$icon$<span class=\"te-prionr\"><<prio>></span>\n</$wikify>\n</$button>\n</$vars>\n\\end\n\n\\define teBtnIcons(label,icon,hovericon)\n<span class=\"te-btn-label\">\"\"\"$label$\"\"\"</span>\n<span class=\"te-btn-icon\"><$transclude tiddler=\"\"\"$icon$\"\"\"/></span>\n<span class=\"te-btn-hovericon\"><$transclude tiddler=\"\"\"$hovericon$\"\"\"/></span>\n\\end\n\n<!-- !! Macros to produce nice buttons\n\nOptimize: Rewire field \"priority\" to a variable $saveto$?\n\n* teBtnDelete\n** delete a given tiddler – show a confirmation request first\n** teBtnDelete1 is my first try to implement this without using existing core as a blueprint.\n* teBtnHint(btntext,message,tooltip,tip,class:\"\")\n** add a message\n* teBtnTagListops(btntext,add-remove,tooltip,tip,class:\"\")\n** add-remove: add and remove tags in one statement \"addthis -removethat\"\n** does not update the modification date as of TW 5.1.14\n* teBtnEdit(sendmessage:\"tm-edit-tiddler\",class:\"\") \n** tiddler is currentTiddler\n* teBtnEditShowModified(sendmessage:\"tm-edit-tiddler\",class:\"\") – used in  $:/plugins/telmiger/listreveal/readme \n** shows modified timestamp on hover\n** tiddler is currentTiddler\n* teBtnPrio(btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip,class:\"\")\n** let the user cycle through a list of choices (priorities) from the //list// field of a tiddler  \n* teBtnPrioPopup(tiddler,btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip:\"change priority\",class:\"\")\n** let the user select a priority from a list of choices saved in the //list// field of a tiddler  \n* tePrioList – a helper macro for teBtnPrioPopup\n* teBtnPrioSet – a helper macro for teBtnPrioPopup\n* teBtnIcons(label,icon,hovericon) – create a set of spans for buttons with icons\n\n-->\n",
            "title": "$:/plugins/telmiger/lib/telements/buttons",
            "tags": "ToDoComponents $:/tags/Macro MyMacros Listreveal",
            "prio": "",
            "modifier": "Thomas Elmiger",
            "modified": "20170713202614284",
            "list": "3 1 2"
        },
        "01 Listreveal List Setup": {
            "created": "20170222232934553",
            "creator": "Thomas Elmiger",
            "text": "Explanations for the code of $:/plugins/telmiger/listreveal/readme – you can clone the linked tiddler and adapt it step by step to create your own listreveal project. The filter statement is a good point to start:\n\n```\n<$set name=\"listfilter\" \n   value=\"\"\"[tag[Listreveal]!is[system]sort[title]]\"\"\">\n<ul class=\"te-list\">\n<$list filter=<<listfilter>>>\n```\nAlways use a variable called //listfilter// to create your list. The list-based tag manager (see [[03 Context Tagging]]) is depending on this convention.\n\nIt is recommended to use the CSS classes you see in this example – add your own to change the looks.\n\n```\n<$set name=\"tidTitle\" value={{!!title}}>\n   <li class=\"todo-item te-flex-item\">\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-left\">\n   <$link to={{!!title}}><$view field=\"title\"/></$link>\n         </span>\n      </span>\n```\nThe styling relies on [[CSS3 flexbox|https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties]]. These spans help to make your list as mobile friendly as possible.\n\n```\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-right\">\n            <<teBtnEditShowModified>>\n```\nThis macro produces an edit button. It shows the tiddler’s modified date when the mouse hovers over it.\n\n```\n<$wikify name=\"cl\" text=<<telang close>> >\n<$wikify name=\"tt\" text=<<telang Details>> >\n   <$macrocall $name=\"listrevealButton\" title=<<tidTitle>> tooltip=<<tt>> close=<<cl>>/>\n</$wikify>\n</$wikify>\n```\nThis macrocall produces the button on the right side that opens and closes the tiddlers.\n\nThe variables //cl// and //tt// get predefined translations from the language tiddlers that are part of this plugin. You can replace the tooltip for opening (attribute //tooltip//) and closing (attribute //close//) with your own texts.\n\n```\n         </span>\n      </span>\n<$wikify name=\"tpl\" text=<<telang date-created-tmpl>> >\n   <$macrocall $name=\"listrevealContent\" title=<<tidTitle>> datetime=<<tpl>>/>\n</$wikify>\n```\nThis macrocall produces the text content and some details of your tiddler.\n\nAgain the variable //tpl// gets a predefined translation from the integrated language tiddlers. It is used as a [[date format template|http://tiddlywiki.com/#DateFormat]] when the created and modified timestamps of the tiddler are displayed. This attribute is optional.\n\n//tidTitle// is the variable for the title of your list elements (your tiddlers). It is set at the beginning (see second snippet).\n\n```\n   </li>\n</$set>\n</$list>\n</ul>\n</$set>\n```\nThe whole list is presented as an unordered HTML list `<ul>` with tiddlers as list items `<li>`.",
            "title": "01 Listreveal List Setup",
            "tags": "Listreveal",
            "modified": "20170224201650800",
            "modifier": "Thomas Elmiger"
        },
        "02 Edit Button": {
            "created": "20170222233632994",
            "creator": "Thomas Elmiger",
            "text": "Optionally you can add a lock/unlock button to switch your list into edit mode (all listreveal lists in your wiki to be precise). This presents the tiddler content in an editor field where you can change it using wikitext formatting. \n\n```\nUse this button to enable editing: <<listrevealBtnEdit>>\n```\nAdd your own parameter `class:\"your-class\"` for styling and positioning via CSS. The icon has a so called dirty indicator implemented: it turns red if you have unsaved changes.",
            "title": "02 Edit Button",
            "tags": "Listreveal",
            "modified": "20170224192922331",
            "modifier": "Thomas Elmiger"
        },
        "03 Context Tagging": {
            "created": "20170224195102124",
            "creator": "Thomas Elmiger",
            "text": "When you look inside a tiddler in the list using the ellipsis (…) button on the right, you see the tiddler’s tags, text and timestamps. \n\n{{$:/core/images/tag-button}}\n\nThe tags can be changed using the tag label icon. A unique feature called context tagging or list-based tagging appears in a popup. From there you are able to add suggested tags based on the other tiddlers in your list or remove single tags from the tiddler. ",
            "title": "03 Context Tagging",
            "tags": "Listreveal",
            "modified": "20170224195644691",
            "modifier": "Thomas Elmiger"
        },
        "04 Checklists": {
            "created": "20170224200058192",
            "creator": "Thomas Elmiger",
            "text": "This plugin comes with CSS to support checklists generated via a plugin by Tony Grosinger – indentation and the display of user interface elements to add and delete items should be optimized for use inside of listreveal lists.\n\n[ ] Install the plugin from https://grosinger.net/tw5-checklist/\n[ ] Make your first checklist\n[x] Read these hints on checklists",
            "todo-done": "20160917214708",
            "todo-deadline": "20160912220000000",
            "title": "04 Checklists",
            "tags": "Listreveal Usability Plugins",
            "priority": "2",
            "modifier": "Thomas Elmiger",
            "modified": "20170224201034767"
        },
        "05 Translations": {
            "text": "The following language tiddlers are shipped with this plugin: \n\n<ul>\n<$list filter=\"\"\"[all[tiddlers+shadows]prefix[$:/plugins/telmiger/lib/languages/]sort[]]\"\"\">\n<li>\n{{##ID}}:  <$link to={{!!title}}><$view field=\"title\"/></$link>\n</li>\n</$list>\n</ul>\n\nSet your language in $:/plugins/telmiger/lib/language (I hope I will find a way to use the language from the TW settings in the future).\n\nTo implement a new language you could clone and adapt one of them. They are used for other plugins too, this is why they contain way more text than needed for listreveal.\n",
            "title": "05 Translations",
            "tags": "Listreveal Translation",
            "modifier": "Thomas Elmiger",
            "modified": "20170714214826478",
            "creator": "Thomas Elmiger",
            "created": "20170224202239839"
        },
        "$:/plugins/telmiger/lib/languages/de-DE": {
            "created": "20160823202222125",
            "creator": "Thomas Elmiger",
            "text": "ID:Deutsch (Deutschland)\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl-info: DD. MMM YYYY, 0hh:0mm Uhr\ndate-deadline-tmpl: 0DD.0MM.YYYY\n<!-- strings: strings start here -->\nAdd-tag: Tag hinzufügen\nAdd-tags-from-the-list: Tags aus der Liste hinzufügen\nall: alle\nall-projects: alle Projekte\narchive: archivieren\nAre-you-sure?: Bist du sicher?\nChange-deadline: Fälligkeit ändern\nchange-priority: Priorität ändern\nchange-priority-to: Priorität ändern auf\nClick-to-edit-title: Auf Titel klicken zum Bearbeiten!\nclose: Schließen\nClose: Schließe\ndays-back: Tage\nDetails: Details\nDo-it-again: Mach’s nochmal\nDo-now: Jetzt erledigen\nDone: Erledigt\nEdit: bearbeiten\nHide-list: Liste ausblenden\nlate: später\nManage-tags: Tag-Manager\nMove-down: Nach unten\nMove-up: Nach oben\nNew-ToDo-Item: Neue Aufgabe\nno.: Anz.\nNothing-to-do-?: Nichts zu tun? Erstelle eine Aufgabe mit diesem Knopf\nPick-a-task-: Wähle eine Aufgabe aus der Liste unten mit diesem Knopf\nPrint-window-hint: In neuem Fenster öffnen zum Drucken\nProject: Projekt:\nRecycle: Nochmals verwenden\nRelax-Nothing-to-do: Schön. Es gibt nichts zu tun.\nRemove-deadline: Fälligkeit löschen\nRemove-tags?: Tags entfernen?\nReset: Zurücksetzen\nsearch: Suche\nSend-it-down: doch nicht jetzt\nSet-deadline: Termin festlegen\nShow-list: Liste anzeigen\nSort-by-deadline: Nach Termin sortieren\nSort-by-modification: Nach letzter Änderung sortieren\nSort-by-priority: Alle nach Priorität sortieren\nSort-by-title: Alle nach Titel sortieren\nsorted-by-deadline: sortiert nach Enddatum\nsorted-by-modification: sortiert nach letzter Änderung\nsorted-by-priority: sortiert nach Priorität\nsorted-by-title: sortiert nach Titel\nSwitch-to-edit-mode: Bearbeiten ermöglichen\nSwitch-to-safe-mode: Bearbeiten ausschalten\nTake-it-up: Rauf damit!\nThis-is-done: Das ist erledigt\nThis-week: Diese Woche\ntoday: heute\nToday: Heute\nToDo: ToDo\nToDo-template-title: Neue Aufgabe\nToDo-template-text: Motivation: Beschreibung * Tests/Abnahmekriterien\nTomorrow: Morgen\nUuups: Hoppla!\n<!-- comments: Kommentare -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121525",
            "title": "$:/plugins/telmiger/lib/languages/de-DE",
            "tags": "Translation ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170713195705076"
        },
        "$:/plugins/telmiger/lib/languages/de-CH": {
            "created": "20160821100821036",
            "creator": "Thomas Elmiger",
            "text": "ID:Deutsch (Schweiz)\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl-info: DD. MMM YYYY, 0hh:0mm Uhr\ndate-deadline-tmpl: 0DD.0MM.YYYY\n<!-- strings: strings start here -->\nAdd-tag: Tag hinzufügen\nAdd-tags-from-the-list: Tags aus der Liste hinzufügen\nall-projects: alle Projekte\narchive: archivieren\nAre-you-sure?: Bist du sicher?\nChange-deadline: Fälligkeit ändern\nchange-priority: Priorität ändern\nchange-priority-to: Priorität ändern auf\nClick-to-edit-title: Auf Titel klicken zum Bearbeiten!\nclose: Schliessen\nClose: Schliesse\ndays-back: Tage zurück\nDetails: Details\nDo-it-again: Mach’s nochmal\nDo-now: Jetzt erledigen\nDone: Erledigt\nEdit: bearbeiten\nHide-list: Liste ausblenden\nlate: später\nManage-tags: Tag-Manager\nMove-down: Nach unten\nMove-up: Nach oben\nNew-ToDo-Item: Neue Aufgabe\nno.: Anz.\nNothing-to-do-?: Nichts zu tun? Erstelle eine Aufgabe mit diesem Knopf\nPick-a-task-: Wähle eine Aufgabe aus der Liste unten mit diesem Knopf\nPrint-window-hint: In neuem Fenster öffnen für Druck\nProject: Projekt:\nRecycle: Nochmals verwenden\nRelax-Nothing-to-do: Schön. Es gibt nichts zu tun.\nRemove-deadline: Fälligkeit löschen\nRemove-tags?: Tags entfernen?\nReset: Zurücksetzen\nsearch: Suche …\nSend-it-down: doch nicht jetzt\nSet-deadline: Termin festlegen\nShow-list: Liste anzeigen\nSort-by-deadline: Nach Termin sortieren\nSort-by-modification: Nach letzter Änderung sortieren\nSort-by-priority: Alle nach Priorität sortieren\nSort-by-title: Alle nach Titel sortieren\nsorted-by-deadline: sortiert nach Enddatum\nsorted-by-modification: sortiert nach letzter Änderung\nsorted-by-priority: sortiert nach Priorität\nsorted-by-title: sortiert nach Titel\nSwitch-to-edit-mode: Bearbeiten ermöglichen\nSwitch-to-safe-mode: Bearbeiten ausschalten\nTake-it-up: Rauf damit!\nThis-is-done: Das ist erledigt\ntoday: heute\nToday: Heute\nToDo: ToDo\nToDo-template-title: ToDo Item\nToDo-template-text: Motivation: Description * Tests/Acceptance criteria\nThis-week: Diese Woche\nTomorrow: Morgen\nUuups: Hoppla!\n<!-- comments: Kommentare -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121525",
            "title": "$:/plugins/telmiger/lib/languages/de-CH",
            "tags": "Translation ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170713195742337"
        },
        "$:/plugins/telmiger/listreveal/icon": {
            "created": "20170224201850969",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64.003\" height=\"64.003\" viewBox=\"-500.5 395.5 64.003 64.003\"><path d=\"M-468.5 396.5l26.426 15.5v31l-26.425 15.5-26.426-15.5v-31l26.427-15.5z\"/><path fill=\"#FFF\" d=\"M-485.996 419.088h34.99v16.824h-34.99z\"/><path fill=\"#E2001A\" d=\"M-468.5 405.5c-12.15 0-22 9.85-22 22s9.85 22 22 22 22-9.85 22-22-9.85-22-22-22zm13.11 21.637c-1.022.682-2.674 1.023-4.954 1.023h-2.838c-1.505 0-2.598.3-3.28.9-.68.6-1.22 1.804-1.622 3.615 0 0-.063.526-.178.526s-.13-.31-.184-.562c-.056-.263-.14-.59-.256-.977-.224-.758-.447-1.332-.67-1.72-.27-.482-.613-.87-1.024-1.165-.412-.294-.883-.47-1.413-.528l-.74-.088h-3.637c-2.178 0-3.796-.343-4.855-1.024-1.764-1.12-2.71-3.24-2.842-6.357-.01-.25 0-.48.047-.772h.208c.142 1.41 1.304 2.502 2.158 3.274.853.77 2.222 1.155 4.104 1.155h3.3c1.896 0 3.28.436 4.158 1.306.79.786 1.31 2.017 1.56 3.69.028.183.012.263.064.263.053 0 .04-.09.06-.278.253-2.173 1.094-3.627 2.522-4.363.88-.46 2.28-.676 4.196-.652l2.257.035c1.527.023 2.814-.278 3.86-.908 1.046-.63 2.285-1.803 2.425-3.52h.21c.065.17.057.56.045.828-.13 3.105-1.023 5.206-2.68 6.3z\"/></svg>",
            "type": "image/svg+xml",
            "title": "$:/plugins/telmiger/listreveal/icon",
            "tags": "",
            "modified": "20170224201914042"
        },
        "$:/plugins/telmiger/listreveal/readme": {
            "created": "20170222172249206",
            "creator": "Thomas Elmiger",
            "text": "!! Good to Know\n\nA list of things you should know about this plugin. Click the ellipsis button on the right […] to see more.\n\nUse this button to enable editing: <<listrevealBtnEdit>>\n\n---\n\n<$set name=\"listfilter\" value=\"\"\"[all[shadows]prefix[0]sort[title]]\"\"\">\n<ul class=\"te-list\">\n<$list filter=<<listfilter>>>\n<$set name=\"tidTitle\" value={{!!title}}>\n   <li class=\"todo-item te-flex-item\">\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-left\">\n   <$link to={{!!title}}><$view field=\"title\"/></$link>\n         </span>\n      </span>\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-right\">\n            <<teBtnEditShowModified>>\n<$wikify name=\"cl\" text=<<telang close>> >\n<$wikify name=\"tt\" text=<<telang Details>> >\n   <$macrocall $name=\"listrevealButton\" title=<<tidTitle>> tooltip=<<tt>> close=<<cl>>/>\n</$wikify>\n</$wikify>\n         </span>\n      </span>\n<$wikify name=\"tpl\" text=<<telang date-created-tmpl>> >\n   <$macrocall $name=\"listrevealContent\" title=<<tidTitle>> datetime=<<tpl>>/>\n</$wikify>\n   </li>\n</$set>\n</$list>\n</ul>\n</$set>",
            "title": "$:/plugins/telmiger/listreveal/readme",
            "tags": "Listreveal",
            "modified": "20170224210736677",
            "modifier": "Thomas Elmiger"
        },
        "$:/plugins/telmiger/listreveal/tags": {
            "text": "\\define lrTaglist(tiddler:\"_false_\")\n<div class=\"lr-tag-popup\">\n<<telang Add-tags-from-the-list>> \n<$wikify name=\"tt\" text=<<telang Add-tag>>>\n<ul class=\"lr-tags-add\">\n<$list filter=\"[list[$:/temp/lr-tags-$tiddler$!!lr-tagsinlist]sort[]] -[list[$:/temp/lr-tags-$tiddler$!!lr-tagstoremove]]\" variable=\"tag\">\n<li>\n   <$macrocall $name=\"teBtnTagAddRemove\" btntext=<<tag>> add=<<tag>> tiddler=\"\"\"$tiddler$\"\"\" tooltip=<<tt>>/> \n</li>\n</$list>\n</ul>\n</$wikify>\n<<telang Remove-tags?>> \n<$wikify name=\"tt\" text=<<telang Are-you-sure?>>>\n<ul class=\"lr-tags-remove\">\n<$list filter=\"[list[$:/temp/lr-tags-$tiddler$!!lr-tagstoremove]sort[]]\" variable=\"tag\">\n<li>\n   <$macrocall $name=\"teBtnTagAddRemove\" btntext=<<tag>> remove=<<tag>> tiddler=\"\"\"$tiddler$\"\"\" tooltip=<<tt>>/> \n</li>\n</$list>\n</ul>\n</$wikify>\n</div>\n\\end\n\n\\define teBtnTagAddRemove(btntext,add:\"_false_\",remove:\"_false_\",tooltip,class:\"\",tiddler:\"_false_\")\n<$vars tip=\"\"\"$tip$\"\"\" tiddler=\"\"\"$tiddler$\"\"\" btnclass=\"te-popup-action $class$\" add=\"\"\"$add$\"\"\" remove=\"\"\"$remove$\"\"\">\n<$set name=\"actiontid\" filter=\"[<tiddler>!prefix[_false_]]\" value=<<tiddler>> emptyValue=<<currentTiddler>>>\n<$set name=\"subfilter\" filter=\"[<add>!prefix[_false_]]\" value=\"[[$add$]]\" emptyValue=\"-[[$remove$]]\">\n<$wikify name=\"at\" text=<<actiontid>>>\n<$button class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\">\n<$wikify name=\"timestampState\" text=\"{{$:/config/TimestampDisable}}\">\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$action-listops $tiddler=<<at>> $field=\"tags\" $subfilter=<<subfilter>>/>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=<<timestampState>>/>\n<$action-setfield $tiddler=\"\"\"$(popstate)$\"\"\" $field=\"text\" $value=\"\"/>\n   <$text text=\"\"\"$btntext$\"\"\">\n</$wikify>\n</$button>\n</$wikify>\n</$set>\n</$set>\n</$vars>\n\\end\n\n\\define lrBtnAddTags(tiddler,class:\"\")\n<$vars tiddler=\"\"\"$tiddler$\"\"\" temptags=\"$:/temp/lr-tags-$tiddler$\">\n<$wikify name=\"tt\" text=<<telang Manage-tags>>>\n<$wikify name=\"tagfilter\" text=\"<<listfilter>> +[tags[]sort[]]\">\n<$button popup=<<qualify \"$:/state/popup/lr-tags-$tiddler$\">> class=\"\"\"te-btn-action addtag $class$\"\"\" tooltip=<<tt>> >\n<$action-listops $tiddler=<<temptags>> $field=\"lr-tagsinlist\" $filter=<<tagfilter>>/>\n<$action-listops $tiddler=<<temptags>> $field=\"lr-tagstoremove\" $filter=\"[<tiddler>tags[]]\"/>\n<$action-setfield $tiddler=<<temptags>> text=<<lrTaglist \"\"\"$tiddler$\"\"\">>/>\n{{$:/core/images/tag-button}}\n</$button>\n</$wikify>\n</$wikify>\n\\end\n\n\\define lrTagsPopup(tiddler)\n<$set name=\"popstate\" value=<<qualify \"$:/state/popup/lr-tags-$tiddler$\">>>\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<popstate>> type=\"nomatch\" text=\"\" default=\"\">\n{{$:/temp/lr-tags-$tiddler$}}\n</$reveal>\n</$set>\n\\end\n\n\\define lrBtnTags(class:\"\")\n<span class=\"lr-flex-wrapper\">\n<$wikify name=\"tiddler\" text=<<currentTiddler>>>\n   <$macrocall $name=\"lrBtnAddTags\" tiddler=<<tiddler>> class=\"\"\"$class$\"\"\"/>\n   <$macrocall $name=\"lrTagsPopup\" tiddler=<<tiddler>>/>\n</$wikify>\n</span>\n\\end\n\n\\define listreveal-tags()\n<span class=\"listreveal-tags te-flex-item\">\n<<lrBtnTags muted>>\n<span class=\"te-tags\">\n<$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/>\n</span>\n</span>\n\\end\n\n<!-- !! Listreveal Tags\n\n* lrTaglist\n** show a popup where tags can be added or removed\n* teBtnTagAddRemove\n** show a button to add/remove a tag from a tiddler \n** does not update the modification date as of TW 5.1.14\n* lrBtnTags\n** lrBtnAddTags: show the button (and save the tags that could be added/removed)\n** lrTagsPopup: reveal or hide the popup\n* listreveal-tags\n** put this in your revealed section to show the button and the existing tags\n\n-->",
            "title": "$:/plugins/telmiger/listreveal/tags",
            "tags": "$:/tags/Macro MyMacros ToDoComponents Listreveal ToDoArchive",
            "modifier": "Thomas Elmiger",
            "modified": "20170503060202645",
            "datetime": "",
            "creator": "Thomas Elmiger",
            "created": "20160915193628399"
        },
        "$:/plugins/telmiger/lib/telements.css": {
            "created": "20160816210925818",
            "creator": "Thomas Elmiger",
            "text": "/* library of reusable (t)elements */\n\n/* header */\n\nheader {\n   background-color: <<colour notification-background>>;\n   padding: 10px;\n   margin: 0 0 0 -10px;\n}\n\n/* te-summary as seen in extract macro */\n\n.te-summary {\n   width: 100%;\n   background-color: <<colour code-background>>;\n}\n\n/* flexbox layout */\n\n.te-flex-item {\n   display: flex;\n   flex-direction: row;\n   flex-wrap: wrap;\n   justify-content: space-between;\n   align-items: flex-start;\n   height: auto;\n}\n\n.te-flex-half-full {\n   flex-grow: 1;\n   min-width: 49%;\n}\n\n.te-flex-left {\n   justify-content: flex-start;\n}\n\n.te-flex-right {\n   justify-content: flex-end;\n}\n\n.te-flex-content {\n   width: 100%;\n}\n\n/* lists */\n\n.te-list {\n   list-style: outside none none;\n   margin: 0 0 1em 0;\n   padding: 0;\n   line-height: 2;\n}\n\n.te-list .te-flex-item {\n   border-top: 1px solid rgba(1,1,1,0);\n   border-bottom: 1px solid rgba(1,1,1,0);\n   margin-bottom: -1px;\n}\n\n.te-list .te-flex-item a.tc-tiddlylink-resolves {\n    flex-grow: 3;\n}\n\n\n/* buttons */\n/* big buttons */\n\n.te-btn-big {\n   display: inline-block;\n   position: absolute;\n   right: 42px;\n   height: 29px;\n   min-width: 2.2em;\n   background: none;\n   background-color: <<colour sidebar-tab-background-selected>>;\n   border: 1px solid lightgray;\n   font-size: 0.85em;\n   line-height: 0.5;\n   margin-left: 10px;\n   padding: 3px 6px 1px;\n}\n.te-btn-big:hover {\n   background-color: <<colour sidebar-tab-background>>;\n}\n.te-btn-big.te-inline {\n    position: relative;\n    left: 0px;\n    vertical-align: bottom;\n}\n/* in tabs e.g. plugin info */\n.tc-tab-set .te-btn-big {\n   right: 62px;\n}\n\n/* standard save button */\n\nspan.te-btn-big button {\n   margin: -2px 0 0 5px;\n   padding: 0;\n   background: none;\n   border: none;\n}\nspan.te-btn-big button svg {\n   height: 0.9em;\n}\n\n/* color overlay hack */\n\nbutton.te-btn-big.te-create::before {\n   background-color: <<colour download-background>>;\n   content: \"\";\n   position: absolute;\n   top: 0; \n   left: 0;\n   width: 100%; \n   height: 100%;  \n   opacity: 0.33; \n}\nbutton:hover.te-btn-big.te-create::before {\n   opacity: 0.66; \n}\n\n.te-btn-big.unlocked {\n   background-color: <<colour sidebar-tab-background>>;\n}\n.te-btn-big.unlocked:hover {\n   background-color: <<colour sidebar-tab-background-selected>>;\n}\n.te-btn-big.te-create {\n   background-color: unset;\n}\n.te-btn-big .tc-image-locked-padlock, \n.te-btn-big .tc-image-unlocked-padlock {\n   margin-bottom: 3px;\n}\n.te-btn-big .tc-image-new-button {\n   margin-bottom: 2px;\n   margin-top: 1px;\n}\n.te-btn-big .tc-image-unfold, \n.te-btn-big .tc-image-fold {\n   margin-top: 3px;\n}\n\n\n/* action buttons */\n\n.te-btn-action {\n   background: none;\n   border: none;\n   margin: 0.3em 0.3em 0 0.6em;\n   padding: 0;\n}\n.te-btn-action svg {\n   fill: #333;\n}\n.te-list .te-btn-action.muted svg {\n   opacity:0.3;\n}\n.te-list .te-btn-action:hover svg {\n   opacity:0.6;\n}\n\n.te-btn-action.addtag svg {\n   height: 1.5em;\n   width: 1.5em;\n}\n\n.te-btn-action.te-edit svg {\n   height: 1.25em;\n   width: 1.25em;\n   margin-bottom: -2px;\n}\n\n.te-btn-action.te-prio {\n   background-color: #777;\n   width: 18px;\n   height: 18px;\n   margin-top: 3px;\n   border: 3px solid white;\n   box-sizing: content-box;\n   border-radius: 5px;\n}\n.te-btn-action.te-prio.prio2 {\n   background-color: #999;\n}\n.te-btn-action.te-prio.prio3 {\n   background-color: #bbb;\n}\n.te-btn-action.te-prio.prio4 {\n   background-color: #ddd;\n}\n\n/* action button in te-tip */\n\n.te-tip .te-btn-action {\n    margin-left: 0.4em;\n    padding-bottom: 25px;\n}\n\n\n/* delete button and delete popup */\n\n.te-btn-delete svg.tc-image-delete-button {\n   width: 1.1em;\n   height: 1.45em;\n}\n\n/* unused !!! */\n.te-delete {\n   background-color: #faa;\n}\n.te-popup-dark {\n   padding: 0.5em;\n   background-color: #999;\n   text-align: center;\n}\n\n\n/* popup action buttons */\n\n.te-popup-action {\n    background: none;\n    border: none;\n    padding: 0;\n}\n\n/* date picker button */\n\n.te-btn-action.todo-deadline {\n    display: inline-block;\n    margin-top: 2px;\n    text-align: center;\n    width: 24px;\n}\n\n.te-btn-action.todo-deadline:hover {\n   cursor: pointer;\n   fill: #000;\n}\n.te-btn-action.todo-deadline span svg {\n    height: 1.33em;\n    width: 1.33em;\n    margin-bottom: -3px;\n    opacity: 0.6;\n    display: inline-flex;\n    position: absolute;\n    margin-left: -0.5em;\n    margin-top: 3px;\n}\n\n/* label and icons */\n.te-btn-label {\n   font-size: 0;\n   height: 1px;\n   overflow: hidden;\n   display: block;\n}\n.te-btn-icon {\n   display: block;\n}\nbutton:hover .te-btn-icon {\n   display: none;\n}\n.te-btn-hovericon {\n   display: none;\n}\nbutton:hover .te-btn-hovericon {\n   display: block;\n}\n\n/* urgent indicators */\n\n.te-btn-action .urgent {\n    display: table-cell;\n    position: relative;\n    margin-left: 0;\n    left: 0em;\n    top: -10px;\n    font-size: 0.75em;\n    line-height: 1.25;\n    padding: 0 0.1em 0 0.1em;\n    max-width: 3.25em;\n}\n\n.urgent.late {\n   background-color: red;\n   color: white;\n}\n.urgent.today {\n   background-color: yellow;\n   color: red;\n}\n\n\n/* priority buttons */\n\n.te-btn-action.te-prio svg {\n   position: relative;\n   height: 1.65em;\n   width: 1.5em;\n   margin-top: -3px;\n   opacity: 0;\n   z-index: 101;\n}\n.te-btn-action.te-prio.prio1:hover svg {\n   opacity: 0.6;\n}\n.te-btn-action.te-prio.prio2:hover svg {\n   opacity: 0.5;\n}\n.te-btn-action.te-prio:hover svg {\n   opacity: 0.4;\n}\n.te-btn-action .te-prionr {\n   position: relative;\n   top: -1.5em;\n   width: 100%;\n   color: #fefefe;\n   font-size: 1em;\n   font-weight: 600;\n   text-align: center;\n}\n.te-btn-action.te-prio.prio1 .te-prionr, .te-btn-action.te-prio.prio2 .te-prionr,\n.te-btn-action.te-prio.prio3 .te-prionr {\n   color: #eee;\n}\n\n.te-prio-list {\n    list-style: none;\n    line-height: 1em;\n    padding: 1em 0 0 0;\n    margin: -1.5em 0 0 0;\n    background-color: <<colour sidebar-tab-background>>;\n    width: 43px;\n    position: absolute;\n    z-index: 25;\n    border: 1px solid <<colour sidebar-tab-border>>;\n    border-radius: 4px;\n}\n.te-list .te-prio-list {\n    margin: 1.75em 0 0 -2.5em;\n}\n\n.te-btn-reveal.tc-reveal {\n    height: 1em;\n}\n\n.te-linkbutton {\n   color: <<colour tiddler-link-foreground>>;\n   background-color: transparent;\n   border: 0;\n}\n\n\n/* big buttons positions */\n\n.te-first {\n   margin-right: 2px;\n}\n.te-second {\n   margin-right: 60px;\n}\n.te-third {\n   margin-right: 120px;\n}\n\n\n/* text */\n\n.te-text {\n   margin: 0 0.5em 0 0.5em;\n}\n.te-text.right {\n   margin-left: 1em;\n   margin-right: 0.5em;\n   right: 6em;\n}\n\n\n/* popup tip */\n\n.te-tip {\n   position: absolute;\n   display: none;\n   font-size: 15px;\n   line-height: 1.4;\n   white-space: nowrap;\n   padding: 0 3px 0 3px;\n   border: 1px solid <<colour notification-border>>;\n   border-radius: 3px;\n   background-color: <<colour notification-background>>;\n}\n\n.te-btn-big:hover .te-tip {\n   margin-left: -8em;\n   margin-top: -1.66em;\n   z-index: 100;\n   display: unset;\n}\n\n.te-btn-action:hover .te-tip,\n.te-created:hover .te-tip,\n.te-modified:hover .te-tip {\n   margin-left: -0.4em;\n   margin-top: -1.35em;\n   z-index: 100;\n   display: unset;\n}\n\n.te-text:hover .te-tip {\n   margin-left: -0.8em;\n   margin-top: -0.75em;\n   display: inline-flex;\n   z-index: 100;\n   display: inline-grid;\n   text-align: center;\n   line-height: 1.1;\n}\n\n.te-tip:hover span .te-tip, \n.te-text:hover .te-tip button .te-tip, \n.te-tip:hover button .te-tip {\n   display: none;\n}\n.te-tip:hover span:hover .te-tip, \n.te-tip:hover button:hover .te-tip  {\n   margin-top: -1.25em;\n   z-index: 101;\n   display: unset;\n}\n.te-tip span span svg {\n   margin-top: 0.25em;\n}\n\n/* meta info */\n\n.te-created, .te-modified {\n   position: relative;\n}\n\n/* images */\n\n.te-created svg, .te-modified svg {\n   max-height: 1.25em;\n   opacity: 0.6;\n   margin-bottom: -0.2em;\n}\n\n/* very small screens */\n\n@media (max-width: 500px) {\n   .te-btn-action {\n      margin: 0.3em 0.8em 0 0.5em;\n   }\n}",
            "title": "$:/plugins/telmiger/lib/telements.css",
            "tags": "$:/tags/Stylesheet Listreveal ToDoComponents ToDoArchive",
            "modifier": "Thomas Elmiger",
            "modified": "20170714223553671"
        },
        "$:/plugins/telmiger/lib/telements-print.css": {
            "text": "/* print optimisation for (t)elements */\n\n@media print {\n\n.te-noprint, \n.te-btn-action, .te-btn-action.muted, \n.te-btn-big, .te-btn-big.te-first, .te-btn-big.te-second, .te-btn-big.te-third,\n.te-edit, .te-to-top { \n   display: none;\n}\n\n/* header */\n\nheader {\n   background-color: transparent;\n}\n\n/* show buttons? reset display */\n/* big buttons */\n\n/* action buttons */\n\n.te-btn-action.todo-deadline, .te-btn-action.te-prio {\n   display: initial;\n}\n\n.te-btn-action.te-prio.prio1 span.te-prionr, \n.te-btn-action.te-prio.prio1 {\n   color: #efefef;\n}\n\n.te-btn-action.te-prio span.te-prionr, .te-btn-action.te-prio.prio2 span.te-prionr, \n.te-btn-action.te-prio.prio3 span.te-prionr, .te-btn-action.te-prio.prio4 span.te-prionr {\n   color: #ddd;\n}\n\n.te-btn-action.te-prio {\n   background-color: #ddd;\n   border: 3px solid black;\n}\n.te-btn-action.te-prio.prio2 {\n   background-color: #bbb;\n}\n.te-btn-action.te-prio.prio3 {\n   background-color: #999;\n}\n.te-btn-action.te-prio.prio4 {\n   background-color: #777;\n}\n\n/* date picker button */\n\n.te-btn-action.deadline span svg {\n   opacity: 0.66;\n}\n\n/* text */\n\n/* meta info */\n\n/* images */\n\n.te-created svg, .te-modified svg {\n   opacity: 0.6;\n}\n\n\n/* **** END of print optimisation **** */\n}\n",
            "title": "$:/plugins/telmiger/lib/telements-print.css",
            "tags": "$:/tags/Stylesheet Listreveal ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170711223138932",
            "creator": "Thomas Elmiger",
            "created": "20170201215840974"
        },
        "$:/plugins/telmiger/listreveal/lr": {
            "created": "20160811053433681",
            "creator": "Thomas Elmiger",
            "text": "\\define listrevealButton(title,tooltip:\"Details\",close:\"Close\",class:\"\")\n<$vars showclass=\"\"\"listreveal-btn-show te-noprint $class$\"\"\" hideclass=\"\"\"listreveal-btn-hide te-noprint $class$\"\"\">\n<$set name=\"qualstate\" value=<<qualify \"$:/state/listreveal_$title$_\">> >\n<$reveal type=\"nomatch\" state=<<qualstate>> text=\"visible\" animate=\"yes\" class=\"listreveal\">\n   <$button set=<<qualstate>> setTo=\"visible\" class=<<showclass>> tooltip=\"$tooltip$\">…</$button></$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"visible\" animate=\"yes\" class=\"listreveal\">\n   <$button class=<<hideclass>> tooltip=\"$close$\">&times;<$action-deletetiddler $tiddler=<<qualstate>> />\n   </$button></$reveal>\n</$set>\n</$vars>\n\\end\n\n\\define listrevealContent(title,mode:\"block\",datetime:\"YYYY-MM-DD\",state:\"_false_\")\n<$vars state=\"\"\"$state$\"\"\">\n<$set name=\"qualstate\" filter=\"[<state>!prefix[_false_]]\" value=<<state>> emptyValue=<<qualify \"$:/state/listreveal_$title$_\">> >\n<$reveal type=\"match\" state=<<qualstate>> text=\"visible\" animate=\"yes\" class=\"listreveal-open\">\n<<listreveal-tags>>\n<span class=\"listreveal-content\">\n<$reveal type=\"nomatch\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n   <$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\"/>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n   <$edit tiddler=\"\"\"$title$\"\"\" class=\"listreveal-edit-text\"/>\n</$reveal>\n</span>\n   <$macrocall $name=\"listreveal-meta\" tiddler=\"\"\"$title$\"\"\" datetime=\"\"\"$datetime$\"\"\"/>\n</$reveal>\n</$set>\n</$vars>\n\\end\n\n\\define listreveal-meta(tiddler,datetime)\n<span class=\"listreveal-meta te-flex-item\">\n   <span class=\"te-created\">{{$:/core/images/file}}<span class=\"te-tip\"><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"creator\"/></span><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"created\" format=\"date\" template=\"\"\"$datetime$\"\"\"/></span>\n   <span class=\"te-separator\"></span>\n<<listreveal-showmodified \"\"\"$tiddler$\"\"\" \"\"\"$datetime$\"\"\">>\n\\end\n\n\\define listreveal-showmodified(tiddler,datetime)\n<span class=\"te-modified\">{{$:/core/images/edit-button}}<span class=\"te-tip\"><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"modifier\"/></span><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"modified\" format=\"date\" template=\"\"\"$datetime$\"\"\"/></span>\n\\end\n\n\\define listrevealBtnEdit(class:\"\")\n<$reveal type=\"nomatch\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n<$wikify name=\"tt\" text=<<telang Switch-to-edit-mode>>>\n<$button set=\"$:/state/listreveal-mode\" setTo=\"edit\" tooltip=<<tt>> class=\"te-btn-big locked $class$\">{{$:/core/images/locked-padlock}}</$button>\n</$wikify>\n</$reveal><$reveal type=\"match\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n<$wikify name=\"tt\" text=<<telang Switch-to-safe-mode>>>\n<$button set=\"$:/state/listreveal-mode\" setTo=\"locked\" tooltip=<<tt>> class=\"te-btn-big unlocked $class$\"><$action-sendmessage $message=\"tm-auto-save-wiki\"/><span class=\"tc-dirty-indicator\">{{$:/core/images/unlocked-padlock}}</span></$button>\n</$wikify>\n</$reveal>\n\\end\n\n<!-- !! Listreveal Plugin Macros\n\n!!! Macros to reveal listed tiddlers\n* listrevealButton(title,tooltip:\"Details\",close:\"Close\",class:\"\")\n** produce a button to show/hide tiddler content\n*** parameters: tooltips for show/hide actions and a CSS-class\n*  listrevealContent(title,mode:\"block\",datetime:\"YYYY-MM-DD\",state:\"_false_\")\n** show the content of a listed tiddler\n** use the state parameter if you don’t want tu use the standard button\n*** set the state to //visible// to show tiddler content \n\n!!! Optional macro\n* listrevealBtnEdit(class:\"\")\n** produce a button to \n*** put all listed tiddlers in edit mode (wikitext editor)\n*** lock the tiddlers and auto-save the wiki after editing\n\n!!! Helper macros for listrevealContent\n* listreveal-meta(tiddler,datetime)\n** show meta information of a tiddler: dates for created/modified and creator/modifier (on hover)\n*** datetime: a [[date format|http://tiddlywiki.com/#DateFormat]] string \n* listreveal-showmodified(tiddler,datetime)\n** show modified timestamp and modifier name (on hover)\n*** datetime: a [[date format|http://tiddlywiki.com/#DateFormat]] string \n\n-->",
            "title": "$:/plugins/telmiger/listreveal/lr",
            "tags": "$:/tags/Macro Listreveal",
            "modifier": "Thomas Elmiger",
            "modified": "20170227172955605",
            "datetime": ""
        },
        "$:/plugins/telmiger/listreveal/lr.css": {
            "text": "/* listreveal styles */\n/* === optimised for: ul class=\"te-list\" and li class=\"te-flex-item\" === */\n\n\n/* buttons */\n\n.listreveal-btn-show, .listreveal-btn-hide {\n   margin: 0.2em 2px 0 0.5em;\n   color: <<colour sidebar-tab-foreground-selected>>;\n   width: 2.65em;\n   height: 1.8em;\n   border: none;\n}\n.listreveal-btn-show {\n   background-color: <<colour sidebar-tab-background-selected>>;\n   height: 1.6em;\n   width: 2.35em;\n   margin-left: 0.8em;\n}\n\n.listreveal-btn-hide, .listreveal-btn-show:hover {\n   background-color: <<colour sidebar-tab-background>>;\n}\n\n/* tiddler content */\n\n.listreveal-open {\n   height: auto; \n   width: 100%;\n   transition: none 0s ease 0s ;\n}\n\n.listreveal-content {\n   display: block;\n   color: <<colour foreground>>;\n   background-color: <<colour sidebar-tab-background-selected>>;\n   border-top: solid 1px <<colour sidebar-tab-border>>;\n   border-bottom: solid 1px <<colour sidebar-tab-border>>;\n   line-height: 1.5;\n   padding: 0.5em 1em 1em 1em;\n  -webkit-animation: expanditem 1s ease-in-out 0s running;\n  animation-name: expanditem;\n  animation-duration: 1s;\n  animation-timing-function: ease-in-out;\n  animation-delay: 0s;\n  animation-iteration-count: 1;\n  animation-direction: normal;\n}\n\n.listreveal-content pre {\n   background-color: <<colour tiddler-info-background>>;\n}\n\n/* edit mode */\n\n.listreveal-edit-text {\n  width: 100%;\n  border: 1px solid gray;\n  padding: 1em;\n}\n\n/* meta info */\n\n.listreveal-meta.te-flex-item, .listreveal-tags.te-flex-item {\n   color: <<colour sidebar-tab-foreground>>;\n   background-color: <<colour sidebar-tab-background>>;\n   border-bottom: 1px solid <<colour sidebar-tab-border>>;\n   border-top: 1px solid <<colour sidebar-tab-border>>;\n   margin-top: -1px;\n   margin-bottom: -1px;\n   font-size: 0.85em;\n}\n\n.listreveal-meta {\n   padding-right: 0.5em;\n}\n\n/* tags info */\n\n.listreveal-tags .te-tags button.tc-tag-label {\n   background-color: <<colour sidebar-tab-background-selected>>;\n}\n\n.lr-tag-popup {\n   margin-left: 1em;\n}\n.lr-tag-popup ul {\n   margin: 0;\n   padding: 0 1em 1em 0;\n   line-height: 1.75;\n   list-style: none;\n   font-weight: 600;\n}\n.lr-tag-popup ul li:hover{\n   color: <<colour tiddler-link-foreground>>;\n}\n.lr-tag-popup ul.lr-tags-remove li:hover{\n   color: <<colour dirty-indicator>>;\n}\n.lr-tags-add li button::before {\n   content: \"+&#8197;\";\n   font-size: 1.2em;\n   color: <<colour tiddler-link-foreground>>;\n}\n.lr-tags-remove li button::before {\n   content: \"&#215;&#8197; \";\n   font-size: 1.2em;\n   color: <<colour dirty-indicator>>;\n}\n\n@media (max-width: 960px) {\n}\n\n/* listreveal animation */\n\n@keyframes expanditem {\n  0% { \n      height: 0;\n      opacity: 0;\n  }\n  80.0% {\n      height: 60%;\n      opacity: 0.9;\n  }\n  100.0% {\n      height: 100%;\n      opacity: 1;\n  }\n}\n\n@-webkit-keyframes expanditem {\n  0% { \n      height: 0;\n      opacity: 0;\n  }\n  100.0% {\n      height: 100%;\n      opacity: 1;\n  }\n}",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/plugins/telmiger/listreveal/lr.css",
            "tags": "$:/tags/Stylesheet Listreveal ToDoComponents ToDoArchive",
            "modifier": "Thomas Elmiger",
            "modified": "20170628212920503",
            "creator": "Thomas Elmiger",
            "created": "20160816052415397"
        },
        "$:/plugins/telmiger/lib/icons/stopwatch-empty.svg": {
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\" class=\"te-stopwatch-button tc-image-button\">\n<path d=\"M64.075 11.522c-32.17 0-58.25 26.082-58.25 58.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S96.25 11.52 64.076 11.52zm0 100.5c-23.336 0-42.25-18.914-42.25-42.25 0-23.33 18.914-42.25 42.25-42.25 23.337 0 42.25 18.92 42.25 42.25 0 23.336-18.913 42.25-42.25 42.25zM55.53 10.022c-2.763 0-5-2.24-5.002-5-.003-2.756 2.24-5 5-5h16.988c2.76 0 5 2.24 5 5 .005 2.757-2.24 5-5 5H55.53z\"/>\n<path fill=\"#000\" d=\"M55 60h18v18H55z\"/>\n</svg>",
            "title": "$:/plugins/telmiger/lib/icons/stopwatch-empty.svg",
            "tags": "$:/tags/Image",
            "modifier": "Thomas Elmiger",
            "modified": "20170509160632118",
            "creator": "Thomas Elmiger",
            "created": "20170506112920842"
        },
        "$:/plugins/telmiger/lib/icons/stopwatch-stop.svg": {
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"5 0 128 128\" width=\"22pt\" height=\"22pt\" class=\"te-stopwatch-button tc-image-button\">\n<path d=\"M64.075 11.522c-32.17 0-58.25 26.082-58.25 58.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S96.25 11.52 64.076 11.52zm0 100.5c-23.336 0-42.25-18.914-42.25-42.25 0-23.33 18.914-42.25 42.25-42.25 23.337 0 42.25 18.92 42.25 42.25 0 23.336-18.913 42.25-42.25 42.25zM55.53 10.022c-2.763 0-5-2.24-5.002-5-.003-2.756 2.24-5 5-5h16.988c2.76 0 5 2.24 5 5 .005 2.757-2.24 5-5 5H55.53z\"/>\n<path d=\"M64.075 35.902c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998z\"/>\n<path fill=\"#FFF\" d=\"M49 54h30v30H49z\"/>\n</svg>",
            "title": "$:/plugins/telmiger/lib/icons/stopwatch-stop.svg",
            "tags": "$:/tags/Image",
            "modifier": "Thomas Elmiger",
            "modified": "20170509161709012",
            "creator": "Thomas Elmiger",
            "created": "20170507053913584"
        },
        "$:/plugins/telmiger/lib/icons/stopwatch.svg": {
            "text": "<svg class=\"te-stopwatch-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n    </g>\n</svg>\n",
            "title": "$:/plugins/telmiger/lib/icons/stopwatch.svg",
            "tags": "$:/tags/Image",
            "modifier": "Thomas Elmiger",
            "modified": "20170509160445448",
            "creator": "Thomas Elmiger",
            "created": "20170509160027462"
        },
        "$:/plugins/telmiger/lib/entities": {
            "text": "\\define ldsbra() [[\n\\define rdsbra() ]]\n\n<!-- !! Entities as Macro Definitions\n\n!!! Very short macros for use in other macros\n* ldsbra and rdsbra – left double square brackets and right //dsbra//\n\n-->",
            "todo-done": "20160819011650",
            "title": "$:/plugins/telmiger/lib/entities",
            "tags": "$:/tags/Macro ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170702091256635",
            "creator": "Thomas Elmiger",
            "created": "20170629183744936"
        },
        "$:/plugins/telmiger/lib/languages/da-DK": {
            "text": "ID:Dansk\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl: DD. MMM YYYY, kl. 0hh:0mm\ndate-deadline-tmpl: 0DD.0MM.YYYY\n<!-- strings: strigs start here -->\nAdd-tag: Tilføj tag\nAdd-tags-from-the-list: Tilføj tags fra listen\nall: alle\nall-projects: alle projekter\narchive: arkiv\nAre-you-sure?: Er du sikker?\nChange-deadline: Ændre slutdato\nchange-priority: Ændre prioritet\nchange-priority-to: sæt prioritet til\nClick-to-edit-title: Klik på titlen for at redigere!\nclose: luk\nClose: Luk\ndays-back: dage tilbage\nDetails: Vis detaljer\nDo-it-again: Gør det igen\nDo-now: Udfør nu\nDone: Udført\nEdit: Redigér\nHide-list: Skjul liste\nlate: senere\nManage-tags: Tag-Manager\nMove-down: Flyt ned\nMove-up: Flyt op\nNew-ToDo-Item: Ny opgave\nno.: nr.\nNothing-to-do-?: Intet at lave? Beskriv en ny opgave med denne knap\nPick-a-task-: Vælg en opgave fra listen nedenunder med denne knap\nPrint-window-hint: Åbn i nyt vindue for at printe ud\nProject: Projekt\nRecycle: Genbrug\nRelax-Nothing-to-do: Slap af. Der er ikke noget at lave.\nRemove-deadline: Fjern slutdato\nRemove-tags?: Fjern tags?\nReset: Reset\nsearch: søg …\nSend-it-down: ikke endnu\nSet-deadline: Sæt slutdato\nShow-list: Vis liste\nSort-by-deadline: Sortér efter slutdato\nSort-by-modification: Sortér efter sidste ændring\nSort-by-priority: Sortér alle efter prioritet\nSort-by-title: Sortér alle efter titel\nsorted-by-deadline: sorteret efter slutdato\nsorted-by-modification: sorteret efter sidste ændring\nsorted-by-priority: sorteret efter prioritet\nsorted-by-title: sorteret efter titel\nSwitch-to-edit-mode: Slå redigering til\nSwitch-to-safe-mode: Slå redigering fra\nTake-it-up: Tag det op!\nThis-is-done: Dette er udført\nThis-week: I&nbsp;denne uge\ntoday: i&nbsp;dag\nToday: I&nbsp;dag\nToDo: ToDo\nToDo-template-title: Ny opgave\nToDo-template-text: Motivation: Beskrivelse * Tests/Accept kriterier\nTomorrow: I&nbsp;morgen\nUuups: Uuups!\n<!-- comments: Kommentarer -->\n<!-- credits: Tusind tak til Birthe for den oprindelige oversættelse! -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->\n",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121501",
            "title": "$:/plugins/telmiger/lib/languages/da-DK",
            "tags": "ToDoComponents Translation",
            "modifier": "Thomas Elmiger",
            "modified": "20170714214949515",
            "creator": "BC",
            "created": "20170530162200369"
        },
        "$:/plugins/telmiger/lib/dates": {
            "created": "20170627092117795",
            "creator": "Thomas Elmiger",
            "text": "\\define yearsSince(date-field:\"modified\",tiddler)\n<<yearsDiff \"\"\"$date-field$\"\"\" \"\"\"$tiddler$\"\"\">>\n\\end\n\n\\define monthsSince(date-field:\"modified\",tiddler)\n<$wikify name=\"years\" text='<<yearsDiff $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$wikify name=\"yearsM\" text='<$macrocall $name=\"rpn\" a=<<years>> b=12 operation=\"*\"/>'>\n<$wikify name=\"months\" text='<<monthsDiff $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$macrocall $name=\"rpn\" a=<<yearsM>> b=<<months>>/>\n</$wikify></$wikify></$wikify>\n\\end\n\n\\define daysSince(date-field:\"modified\",tiddler)\n<<daysDiff $date-field$ \"\"\"$tiddler$\"\"\">>\n\\end\n\n\\define hoursSince(date-field:\"modified\",tiddler)\n<$wikify name=\"days\" text='<<daysSince $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$wikify name=\"daysH\" text='<$macrocall $name=\"rpn\" a=<<days>> b=\"24\" operation=\"*\"/>'>\n<$wikify name=\"hours\" text='<<hoursDiff $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$macrocall $name=\"rpn\" a=<<daysH>> b=<<hours>>/>\n</$wikify></$wikify></$wikify>\n\\end\n\n\\define minutesSince(date-field:\"modified\",tiddler)\n<$wikify name=\"hours\" text='<<hoursSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$wikify name=\"hoursM\" text='<$macrocall $name=\"rpn\" a=<<hours>> b=\"60\" operation=\"*\"/>'><$wikify name=\"minutes\" text='<<minutesDiff $date-field$ \"\"\"$tiddler$\"\"\">>'><$macrocall $name=\"rpn\" a=<<hoursM>> b=<<minutes>>/></$wikify></$wikify></$wikify>\n\\end\n\n\\define hoursMinutesSince(date-field:\"modified\",tiddler)\n<$wikify name=\"minutes\" text='<<minutesSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$macrocall $name=\"rpn\" a=<<minutes>> b=60 operation=\"/\" precision=\"f\"/> h <$macrocall $name=\"rpn\" a=<<minutes>> b=60 operation=\"%\"/> m</$wikify>\n\\end\n\n\\define minutesTo(date-field:\"modified\",tiddler)\n<$wikify name=\"minutes\" text='<<minutesSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$wikify name=\"result\" text='<$macrocall $name=\"rpn\" a=<<minutes>> b=\"-1\" operation=\"*\"/>'><<result>></$wikify></$wikify>\n\\end\n\n\\define hoursTo(date-field:\"modified\",tiddler)\n<$wikify name=\"hours\" text='<<hoursSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$wikify name=\"result\" text='<$macrocall $name=\"rpn\" a=<<hours>> b=\"-1\" operation=\"*\"/>'><<result>></$wikify></$wikify>\n\\end\n\n\\define yearsDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now YYYY>>'><$wikify name=\"b\" text='<$macrocall $name=\"yearValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define monthsDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now MM>>'><$wikify name=\"b\" text='<$macrocall $name=\"monthValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define daysDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now DD>>'><$wikify name=\"b\" text='<$macrocall $name=\"dayValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define hoursDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now 0hh>>'><$wikify name=\"b\" text='<$macrocall $name=\"hoursValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define minutesDiff(date-field:\"modified\",tiddler)\n<$set name=\"update-everything-now\" value=<<now 0mm>>><$wikify name=\"a\" text=\"<<update-everything-now>>\"><$wikify name=\"b\" text='<$macrocall $name=\"minutesValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify></$set>\n\\end\n\n<!-- !! Calculations with dates\nTransform dates in TW [[Date Field Format|http://tiddlywiki.com/#Date%20Fields]]\n\nTODO: Jed Carty has better macros for similar things – build a new version based on these http://ooktech.com/jed/ExampleWikis/DateMacros/\n\nWe compare the date string in a given field with the result of the `<<now>>` macro combined with one of the selectors YYYY for years, MM for months, DD for Days, 0hh …, 0mm …, 0ss. Note the 0-prefix for values that could be zero! (They disappear and return nothing when this is missing).\n\nThis was developped for use with due dates. The macros are good enough to check if a deadline was missed or if it will be reached soon.\n\n* time since the given timestamp\n** yearsSince(date-field:\"modified\",tiddler) – tiddler defaults to current\n** monthsSince (counts also the year difference)\n** daysSince – does NOT take the month into account\n*** this would be complicated because of differing number of days in each month\n** hoursSince (counts also the days)\n*** this can result in errors when the days are in different monts\n*** we recommend to filter for days in the same month first\n** minutesSince (counts also the hours and days)\n** hoursMinutesSince – turn minutes from minutesSince back into hours and minutes \n* time to the given datestamp … – time since inverted (* -1)\n** minutesTo\n** hoursTo\n** missing: daysTo, monthsTo, yearsTo\n* Diff macros\n** yearsDiff(date-field:\"modified\",tiddler)\n** … and so on for months, days, hours, minutes\n\n\nSyntax: `<<yearsSince created>>`\n\nResult: <<yearsSince created>>\n\n-->\n",
            "title": "$:/plugins/telmiger/lib/dates",
            "tags": "[[ToDo Addons]] $:/tags/Macro",
            "modifier": "Thomas Elmiger",
            "modified": "20170714220748829"
        },
        "$:/plugins/telmiger/lib/dates-then": {
            "created": "20170705203414697",
            "creator": "Thomas Elmiger",
            "text": "\\define yearValue(field,tiddler) <<dateValue YYYY $field$ $tiddler$>>\n\\define monthValue(field,tiddler) <<dateValue MM $field$ $tiddler$>>\n\\define dayValue(field,tiddler) <<dateValue DD $field$ $tiddler$>>\n\\define hoursValue(field,tiddler) <<dateValue 0hh $field$ $tiddler$>>\n\\define minutesValue(field,tiddler) <<dateValue 0mm $field$ $tiddler$>>\n\\define secondsValue(field,tiddler) <<dateValue 0ss $field$ $tiddler$>>\n\n\\define dateValue(template:\"YYYY-0MM-0DD\",field:\"modified\",tiddler) \n<$set name=\"tid\" filter=\"[field:title[$tiddler$]]\" value=\"\"\"$tiddler$\"\"\" emptyValue=<<currentTiddler>>><$view tiddler=<<tid>> field=\"\"\"$field$\"\"\" format=\"date\" template=\"\"\"$template$\"\"\"/></$set>\n\\end\n\n\n<!-- !! Macros for Dates from fields\nOutput dates from fields in TW [[Date Field Format|http://tiddlywiki.com/#Date%20Fields]]\n\n* dateValue(template:\"YYYY-0MM-0DD\",field:\"modified\",tiddler) – return a value from a date string via  the view widget\n** field: where the date string is stored\n** tiddler: where the date string is stored, defaults to currentTiddler\n* yearValue(field,tiddler) – return the year\n** monthValue, dayValue, hoursValue, minutesValue, secondsValue – guess what ;–)\n\n-->\n\nSyntax: `<<hoursValue example-1>>`\n\nResult: <<hoursValue example-1>>\n\n",
            "title": "$:/plugins/telmiger/lib/dates-then",
            "tags": "[[ToDo Addons]] $:/tags/Macro",
            "modifier": "Thomas Elmiger",
            "modified": "20170714220234254",
            "example-1": "20001231230000000"
        }
    }
}
<!-- allowed values for sort-list: priority/deadline/title -->
sort-list: deadline
<!-- allowed values for sort-report: priority/modified -->
sort-report: priority
<!-- comments: Kommentare -->
<!-- usage: <$reveal type="match" state="$:/plugins/telmiger/todonow/settings##sort-list" text="priority"> -->
show-list-deadline: bottom
{
    "tiddlers": {
        "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js": {
            "text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js\ntype: application/javascript\nmodule-type: wikirule\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"checkbox\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\n\t// Match on [ ], [x], and [X], to the end of the line\n\tthis.matchRegExp = /^\\[([ xX])\\] .*$/mg;\n};\n\n/*\nRetrieve the configuration state of the clear all button\n*/\n\nexports.shouldShowClearAll = function() {\n    var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n    var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n    var showClearAll = configWidgetFields[\"show-clearall\"] || \"true\";\n    return (showClearAll === \"true\");\n}\n\n/*\nCreate list items\n*/\n\nexports.parse = function() {\n    var listItems = [];\n    var listStartPos = this.parser.pos;\n    var match = this.match;\n\n    // Start the list with a \"New List Item\" placeholder\n    listItems.push({\n        type: \"element\",\n        tag: \"li\",\n        children: [\n            {\n                type: \"element\",\n                tag: \"span\",\n                attributes: {\n                    class: {type: \"string\", value: \"checklist-newitem-icon\"},\n                    for: {type: \"string\", value: \"checklist-new\"}\n                }\n            },\n            {\n                type: \"element\",\n                tag: \"input\",\n                attributes: {\n                    class: {type: \"string\", value: \"checklist-newitem\"},\n                    id: {type: \"string\", value: \"checklist-new\"},\n                    placeholder: {type: \"string\", value: \"New list item (WikiText)\"}\n                    // impossible? add an aria-label \"Write a new todo item\"\n                    // attribute aria-label seems to be missing in $:/core/modules/widgets/edit.js \n                }\n            },\n            // label for the input field\n            {\n                type: \"element\",\n                tag: \"label\",\n                attributes: {\n                    class: {type: \"string\", value: \"checklist-vh\"},\n                    for: {type: \"string\", value: \"checklist-new\"}\n                },\n                children: [\n                    {type: \"text\", text: \"Write a new item for the list.\"}\n                ]\n            },\n            // (pseudo) button to add the new item to the list\n            {\n                type: \"element\",\n                tag: \"button\",\n                attributes: {\n                    class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-add\"},\n                    title: {type: \"string\", value: \"add to list\"}\n                },\n                children: [\n                    {\n                        type: \"element\",\n                        tag: \"span\",\n                        attributes: {\n                            class: {type: \"string\", value: \"checklist-vh\"}\n                        },\n                        children: [\n                            {type: \"text\", text: \"add list item\"}\n                        ]\n                    }\n                ]\n            }\n            // end of button\n        ]\n    });\n\n    // Create items in a loop\n    do {\n        var startPos = this.parser.pos;\n        this.parser.pos = this.matchRegExp.lastIndex;\n        var parseResults = this.parser.wiki.parseText(\n                \"text/vnd.tiddlywiki\",\n                this.parser.source.substring(startPos + 4, this.parser.pos),\n                {parseAsInline: true});\n\n        // Use the listitem body as a label for the checkbox to get better accessibility\n        var itembody = {\n            type: \"element\",\n            tag: \"label\",\n            attributes: {\n                for: {type: \"string\", value: match.index}\n            },\n            children: parseResults.tree\n        };\n\n        var checkbox = {\n            type: \"element\",\n            tag: \"input\",\n            attributes: {\n                type: {type: \"string\", value: \"checkbox\"},\n                pos: {type: \"string\", value: match.index},\n                id: {type: \"string\", value: match.index}\n            }\n        };\n        if (match[1] === \"x\" || match[1] === \"X\") {\n            checkbox.attributes.checked = {type: \"boolean\", value: true};\n        }\n\n        // Make a button to delete the item\n        var removelabel = {\n            type: \"element\",\n            tag: \"span\",\n            attributes: {\n                class: {type: \"string\", value: \"checklist-vh\"}\n            },\n            children: [\n                {type: \"text\", text: \"delete list item\"}\n            ]\n        };\n\n        var removebutton = {\n            type: \"element\",\n            tag: \"button\",\n            attributes: {\n                class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-remove\"},\n                title: {type: \"string\", value: \"delete\"}\n            },\n            children: [\n                removelabel\n            ]\n        };\n\n        // add the item to the list\n        listItems.push({\n            type: \"element\",\n            tag: \"li\",\n            children: [\n                checkbox,\n                removebutton,\n                itembody\n            ]\n        });\n\n        match = this.matchRegExp.exec(this.parser.source);\n    } while (match != null && match.index == 1 + this.parser.pos);\n\n    if (this.shouldShowClearAll()) {\n        // show the clear-all button\n        var clearallbutton = {\n            type: \"element\",\n            tag: \"button\",\n            attributes: {\n                class: {type: \"string\", value: \"checklist-clearall\"}\n            },\n            children: [\n                {\n                    type: \"element\",\n                    tag: \"span\",\n                    attributes: {\n                        class: {type: \"string\", value: \"checklist-clearall-label\"}\n                    },\n                    children: [\n                        {type: \"text\", text: \"Clear all\"}\n                    ]\n                }\n            ]\n        };\n\n        listItems.push({\n            type: \"element\",\n            tag: \"li\",\n            children: [\n                clearallbutton\n            ]\n        });\n    }\n\n    return [{\n        type: \"checklist\",\n        attributes: {\n            listStartPos: {type: \"string\", value: listStartPos},\n            listStopPos:  {type: \"string\", value: this.parser.pos}\n        },\n        children: listItems\n    }];\n};\n\n})();\n",
            "title": "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/plugins/tgrosinger/tw5-checklist/checklist.js": {
            "text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checklist.js\ntype: application/javascript\nmodule-type: widget\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckListWidget = function(parseTreeNode,options) {\n    this.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckListWidget.prototype.render = function(parent,nextSibling) {\n    this.tiddlerTitle = this.getVariable(\"currentTiddler\");\n    this.startPos = parseInt(this.parseTreeNode.attributes.listStartPos.value);\n    this.stopPos = parseInt(this.parseTreeNode.attributes.listStopPos.value);\n\n    this.parentDomNode = parent;\n    this.nextSibling = nextSibling;\n    this.computeAttributes();\n    this.execute();\n};\n\n/*\nRetrieve the configuration state indicating if items should be re-arranged\n*/\nCheckListWidget.prototype.shouldMoveChecked = function() {\n    var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n    var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n    var moveChecked = configWidgetFields[\"move-checked\"] || \"true\";\n    return (moveChecked === \"true\");\n}\n\n/*\nCompute the internal state of the widget\n*/\nCheckListWidget.prototype.execute = function() {\n    var domNode = this.document.createElement(\"ul\");\n    domNode.className = \"checklist\";\n\n    this.makeChildWidgets();\n    this.renderChildren(domNode);\n\n    /* add event listeners */\n    $tw.utils.each(domNode.childNodes, function(childNode) {\n        if (childNode.childNodes[0].className === \"checklist-clearall\") {\n            // ClearAllChecks, do not use checkbox listener\n            $tw.utils.addEventListeners(childNode.childNodes[0],\n                    [{name: \"click\", handlerObject: this,\n                        handlerMethod: \"handleClearChecksEvent\"}]);\n        } else if (childNode.childNodes[1].className === \"checklist-newitem\") {\n            // NewListItem, do not use checkbox listener\n            $tw.utils.addEventListeners(childNode.childNodes[1], [\n                    {name: \"blur\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"},\n                    {name: \"keyup\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"}\n            ]);\n    // If this is a normal checklist item …\n        } else {\n            if (childNode.childNodes[0].checked) {\n                $tw.utils.addEventListeners(childNode,\n                        [{name: \"change\", handlerObject: this, handlerMethod: \"handleUncheckEvent\"}]);\n            } else {\n                $tw.utils.addEventListeners(childNode,\n                        [{name: \"change\", handlerObject: this, handlerMethod: \"handleCheckEvent\"}]);\n            }\n            $tw.utils.addEventListeners(childNode.childNodes[1], [\n                {name: \"click\", handlerObject: this, handlerMethod: \"handleRemoveEvent\"}\n            ]);\n        }\n    }.bind(this));\n\n    this.parentDomNode.insertBefore(domNode, this.nextSibling);\n};\n\n// When the user clicks the clear-all button, remove all checks\nCheckListWidget.prototype.handleClearChecksEvent = function(event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n    var bodyLen = bodyList.length;\n\n    for (var i = 0; i < bodyLen; i++) {\n        bodyList[i] = bodyList[i].replace(\"[x]\", \"[ ]\");\n        bodyList[i] = bodyList[i].replace(\"[X]\", \"[ ]\");\n    }\n\n    // Save the updated body\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n// On blur or enter, save the new list item\nCheckListWidget.prototype.handleBlurNewItemEvent = function(event) {\n    if (event.type == \"keyup\" && event.keyCode != 13) {\n        // This function receives both blur and keyup events.\n        // Only run on blur or enter key\n        return;\n    }\n\n    if (event.target.value.trim() === \"\") {\n        // Don't save an empty list item\n        return;\n    }\n\n    var checklist = event.target.parentNode.parentNode;\n    var firstItem = checklist.childNodes[1];\n    var pos = firstItem.childNodes[0].attributes.pos.nodeValue;\n\n    var newItem = \"[ ] \" + event.target.value.trim() + \"\\n\";\n    event.target.value = \"\";\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    tiddlerBody = tiddlerBody.substring(0, pos) + newItem + tiddlerBody.substring(pos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, tiddlerBody);\n};\n\nCheckListWidget.prototype.handleCheckEvent = function(event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n    var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n    // Find the index of the first checked item\n    var i = 1;\n    var firstChecked = domItem.nextSibling;\n    while (firstChecked !== null && !firstChecked.childNodes[0].checked) {\n        i++;\n        firstChecked = firstChecked.nextSibling;\n    }\n\n    // Update the tiddler data\n    bodyList[itemIndex] = bodyList[itemIndex].replace(\"[ ]\", \"[x]\");\n\n    // Rearrange items (if configured to do so)\n    var shouldMove = this.shouldMoveChecked();\n    if (shouldMove) {\n        bodyList.splice(itemIndex + i, 0, bodyList[itemIndex]);\n        bodyList.splice(itemIndex, 1);\n    }\n\n    // Save the updated body\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n    if (shouldMove) {\n        // Update the DOM (pre-refresh for animations)\n        domList.insertBefore(domItem, firstChecked);\n    }\n};\n\nCheckListWidget.prototype.handleUncheckEvent = function(event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n    var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n    // Find the index of the first checked item\n    var i = 0;\n    var firstChecked = domList.firstChild.nextSibling; // Skip the newItem input\n    while (firstChecked !== null) {\n        if (firstChecked.childNodes[0].checked || firstChecked == domItem) {\n            break;\n        }\n        i++;\n        firstChecked = firstChecked.nextSibling;\n    }\n\n    // Update the tiddler data\n    bodyList[itemIndex] = bodyList[itemIndex].replace(\"[x]\", \"[ ]\");\n\n    // Rearrange items (if configured to do so)\n    var shouldMove = this.shouldMoveChecked();\n    if (shouldMove) {\n        var bodyItem = bodyList[itemIndex];\n        bodyList.splice(itemIndex, 1);\n        bodyList.splice(i, 0, bodyItem);\n    }\n\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n    if (shouldMove) {\n        // Update the DOM (pre-refresh for animations)\n        domList.insertBefore(domItem, firstChecked);\n    }\n};\n\nCheckListWidget.prototype.handleRemoveEvent = function (event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n    var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n    // Update the tiddler data\n    bodyList.splice(itemIndex, 1);\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n/*\nSelectively refreshes the widget if needed.\nReturns true if the widget or any of its children needed re-rendering\n*/\nCheckListWidget.prototype.refresh = function(changedTiddlers) {\n    var changedAttributes = this.computeAttributes();\n    // Refresh if an attribute has changed, or the type associated with\n    // the target tiddler has changed\n    if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index ||\n            (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n        this.refreshSelf();\n        return true;\n    } else {\n        return this.refreshChildren(changedTiddlers);\n    }\n};\n\nexports.checklist = CheckListWidget;\n\n})();\n",
            "title": "$:/plugins/tgrosinger/tw5-checklist/checklist.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/tgrosinger/tw5-checklist/Configuration": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/Configuration",
            "move-checked": "true",
            "strike-checked": "true",
            "show-clearall": "true",
            "text": "Please see the [[homepage|https://grosinger.net/tw5-checklist/]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n  <tr>\n    <th align=\"left\">Rearrange checked items:</th>\n    <td>\n        <$checkbox field=\"move-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n            checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n    </td>\n  </tr>\n  <tr>\n    <th align=\"left\" class=\"rerendering-required\">Strike checked items: </th>\n    <td>\n        <$checkbox field=\"strike-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n            checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n    </td>\n  </tr>\n  <tr>\n    <th align=\"left\" class=\"rerendering-required\">Show Clear-All: </th>\n    <td>\n        <$checkbox field=\"show-clearall\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n            checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n    </td>\n  </tr>\n</table>\n\n&#42; make a change in a list to see the effect (check/uncheck or add/delete an item).\n\n<style>\n.rerendering-required:after {\n    content: ' *';\n    color: #e32;\n}\n</style>\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/license": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/license",
            "text": "The MIT License (MIT)\n\nCopyright (c) 2015 Tony Grosinger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/readme": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/readme",
            "text": "This plugin provides a simple checklist which does not create a new tiddler for\neach task. Features include:\n\n[x] Check and uncheck items\n[x] Simple, no configuration necessary\n[x] Easily editable, and easy to read in edit view\n[x] Add new list items without using edit mode\n[x] Move completed items to bottom of list\n\n[[Source code|https://github.com/tgrosinger/tw5-checklist]]\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/stylesheet": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/stylesheet",
            "tags": "$:/tags/Stylesheet",
            "text": "ul.checklist {\n    list-style: none;\n    margin: 0;\n    padding: 0;\n}\n\nul.checklist > li {\n    position: relative;\n    width: calc(100% - 1em);\n}\n\n\n/* input form */\n\n.checklist-newitem-icon::before {\n    content: \"&#x270e;\";\n}\n\ninput.checklist-newitem {\n    margin-left: 1em;\n    margin-bottom: 0.75em;\n    padding: 2px;\n    border: none;\n    border-bottom: solid 2px <<colour sidebar-tab-background>>;\n    transition: border 0.3s;\n    width: calc(100% - 2em - 20px);\n}\n\ninput:focus.checklist-newitem {\n    border-bottom: solid 2px <<colour notification-border>>;\n}\n\n\n/* placeholder text */\n\n::-webkit-input-placeholder { \n  color: #444;\n  font-style: italic;\n}\n::-moz-placeholder { \n  color: #444;\n  font-style: italic;\n}\n:-ms-input-placeholder { \n  color: #444;\n  font-style: italic;\n}\n:-moz-placeholder { \n  color: #444;\n  font-style: italic;\n}\n::placeholder {\n  color: #444;\n  font-style: italic;\n}\n\n\n/* list items content */\n\n.checklist li input[type=\"checkbox\"] {\n    vertical-align: top;\n    margin-top: 4px;\n}\n\n.checklist label {\n    display: inline-block;\n    position: relative;\n    margin-left: -1em;\n    padding-left: 0.4em;\n    left: 1.4em;\n    width: calc(100% - 2em - 20px);\n}\n\n.checklist > li:hover label, \n.checklist input[type=\"checkbox\"]:hover + button + label, \n.checklist input[type=\"checkbox\"]:focus + button + label  {\n    background-color: <<colour sidebar-tab-background>>;\n}\n\ninput:checked + .checklist-remove + label {\n    opacity: 0.5;\n}\n\n.checklist li input + .checklist-remove:hover + label,\n.checklist li input + .checklist-remove:focus + label  {\n    background-color:  rgba(255,0,0,0.25);\n    opacity: 0.8;\n    border-radius: 5px;\n}\n\n/* strike checked items only if set in user configuration */\n<$list filter=\"[[$:/plugins/tgrosinger/tw5-checklist/Configuration]field:strike-checked[true]]\">\ninput:checked + .checklist-remove + label {\n    text-decoration: line-through;\n}\n</$list>\n\n\n/* buttons */\n\nbutton.checklist-add {\n    position: relative;\n    left: 0.75em;\n    width: 18px;\n    height: 18px;\n    border-radius: 5px;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%221%22%20height%3D%227%22%20x%3D%225%22%20y%3D%222%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3Crect%20width%3D%227%22%20height%3D%221%22%20x%3D%222%22%20y%3D%225%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3C%2Fsvg%3E');\n    background-size: 100%;\n}\n\nbutton.checklist-add:hover, button.checklist-add:focus {\n    background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-remove {\n    display: block;\n    position: absolute;\n    top: 2px;\n    right: -6px;\n    width: 18px;\n    height: 18px;\n    border-radius: 5px;\n    color: <<colour sidebar-muted-foreground>>;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%225%22%20height%3D%221%22%20x%3D%223%22%20y%3D%225%22%20fill%3D%22%23444%22%2F%3E%0A%3C%2Fsvg%3E');\n    background-size: 100%;\n/*    background-color: <<colour sidebar-tab-background-selected>>; */\n    border: 1px solid <<colour sidebar-tab-background>>;\n}\n\nul.checklist > li:hover button.checklist-remove {\n    color: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton.checklist-remove:hover,\nbutton.checklist-remove:focus {\n    color:  <<colour dirty-indicator>>;\n    background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-clearall {\n    margin-top: 0.75em;\n}\n\nbutton.checklist-clearall::before {\n    content: \"↻ \";\n}\n\n\n/* visualliy hidden, accessible for screen reader */\n\n.checklist-vh {\n    position: absolute !important;\n    clip: rect(1px, 1px, 1px, 1px);\n    padding:0 !important;\n    border:0 !important;\n    height: 1px !important;\n    width: 1px !important;\n    overflow: hidden;\n}\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/Usage": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/Usage",
            "text": "! Creating a New Checklist\n\nThis plugin provides a wikitext rule for use in normal wikitext tiddlers. A\nchecklist is defined as two brackets with either a <kbd>space</kbd> or an\n<kbd>x</kbd> between them.\n\n```\n! My Shopping List\n\n[ ] Milk\n[ ] Eggs\n[x] Bread\n\n```\n\n!! Multiple Checklists\n\nThere is no need to declare an instance of a checklist, and you can place\nchecklist items throughout a tiddler. Each set of consecutive (single new-line\ndelimited) checklist items will be displayed as a single checklist.\n\n```\n! My first list\n\n[ ] Item 1\n[x] Item 2\n\n! My second list\n\n[x] Item 3\n[x] Item 4\n\n```\n\n!! List Item Formatting\n\nList items support any inline formatting rules. This means you can create links,\nbold, or anything else found on the\n[[Formatting in WikiText|http://tiddlywiki.com/static/Formatting%2520in%2520WikiText.html]] guide.\n\n! Configuration\n\nPlease see [[the configuration|$:/plugins/tgrosinger/tw5-checklist/Configuration]]\npage to learn about and adjust configuration options.\n"
        }
    }
}
{
    "tiddlers": {
        "$:/config/HighlightPlugin/TypeMappings/application/javascript": {
            "title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
            "text": "javascript"
        },
        "$:/config/HighlightPlugin/TypeMappings/application/json": {
            "title": "$:/config/HighlightPlugin/TypeMappings/application/json",
            "text": "json"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/css": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/css",
            "text": "css"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/html": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/html",
            "text": "html"
        },
        "$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
            "title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
            "text": "xml"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
            "text": "markdown"
        },
        "$:/plugins/tiddlywiki/highlight/highlight.js": {
            "text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n!function(e){\"undefined\"!=typeof exports?e(exports):(window.hljs=e({}),\"function\"==typeof define&&define.amd&&define(\"hljs\",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,\"&amp;\").replace(/</gm,\"&lt;\").replace(/>/gm,\"&gt;\")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=/\\blang(?:uage)?-([\\w-]+)\\b/i.exec(i))return w(t[1])?t[1]:\"no-highlight\";for(i=i.split(/\\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:\"start\",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:\"stop\",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset<r[0].offset?e:r:\"start\"==r[0].event?e:r:e.length?e:r}function o(e){function r(e){return\" \"+e.nodeName+'=\"'+n(e.value)+'\"'}f+=\"<\"+t(e)+Array.prototype.map.call(e.attributes,r).join(\"\")+\">\"}function u(e){f+=\"</\"+t(e)+\">\"}function c(e){(\"start\"==e.event?o:u)(e.node)}for(var s=0,f=\"\",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else\"start\"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),\"m\"+(e.cI?\"i\":\"\")+(r?\"g\":\"\"))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(\" \").forEach(function(e){var t=e.split(\"|\");u[t[0]]=[n,t[1]?Number(t[1]):1]})};\"string\"==typeof a.k?c(\"keyword\",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\\b\\w+\\b/,!0),i&&(a.bK&&(a.b=\"\\\\b(\"+a.bK.split(\" \").join(\"|\")+\")\\\\b\"),a.b||(a.b=/\\B|\\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\\B|\\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||\"\",a.eW&&i.tE&&(a.tE+=(a.e?\"|\":\"\")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push(\"self\"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?\"\\\\.?(\"+e.b+\")\\\\.?\":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join(\"|\"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t<n.c.length;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?\"\":E.classPrefix,i='<span class=\"'+a,o=t?\"\":\"</span>\";return i+=e+'\">',i+n+o}function p(){if(!L.k)return n(y);var e=\"\",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(L,r);a?(B+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(y)}return e+n(y.substr(t))}function d(){var e=\"string\"==typeof L.sL;if(e&&!x[L.sL])return n(y);var t=e?f(L.sL,y,!0,M[L.sL]):l(y,L.sL.length?L.sL:void 0);return L.r>0&&(B+=t.r),e&&(M[L.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,\"\",!0):\"\";e.rB?(k+=r,y=\"\"):e.eB?(k+=n(t)+r,y=\"\"):(k+=r,y=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(y+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(y+=t),k+=b();do L.cN&&(k+=\"</span>\"),B+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),y=\"\",a.starts&&v(a.starts,\"\"),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(L.cN||\"<unnamed>\")+'\"');return y+=t,t.length||1}var N=w(e);if(!N)throw new Error('Unknown language: \"'+e+'\"');s(N);var R,L=i||N,M={},k=\"\";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,\"\",!0)+k);var y=\"\",B=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+=\"</span>\");return{r:B,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf(\"Illegal\"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||E.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(w(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\\t)+)/gm,function(e,n){return n.replace(/\\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\\n/g,\"<br>\")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}function p(e){var n=i(e);if(!a(n)){var t;E.useBR?(t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),t.innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll(\"pre code\");Array.prototype.forEach.call(e,p)}}function v(){addEventListener(\"DOMContentLoaded\",b,!1),addEventListener(\"load\",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function w(e){return e=e.toLowerCase(),x[e]||x[R[e]]}var E={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=w,e.inherit=o,e.IR=\"[a-zA-Z]\\\\w*\",e.UIR=\"[a-zA-Z_]\\\\w*\",e.NR=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",e.CNR=\"(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",e.BNR=\"\\\\b(0b[01]+)\",e.RSR=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",e.BE={b:\"\\\\\\\\[\\\\s\\\\S]\",r:0},e.ASM={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[e.BE]},e.QSM={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[e.BE]},e.PWM={b:/\\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\\b/},e.C=function(n,t,r){var a=e.inherit({cN:\"comment\",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",r:0}),a},e.CLCM=e.C(\"//\",\"$\"),e.CBCM=e.C(\"/\\\\*\",\"\\\\*/\"),e.HCM=e.C(\"#\",\"$\"),e.NM={cN:\"number\",b:e.NR,r:0},e.CNM={cN:\"number\",b:e.CNR,r:0},e.BNM={cN:\"number\",b:e.BNR,r:0},e.CSSNM={cN:\"number\",b:e.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",r:0},e.RM={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[e.BE,{b:/\\[/,e:/\\]/,r:0,c:[e.BE]}]},e.TM={cN:\"title\",b:e.IR,r:0},e.UTM={cN:\"title\",b:e.UIR,r:0},e});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"header\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",r:0},{cN:\"bullet\",b:\"^([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",r:0}]},{cN:\"blockquote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"`.+?`\"},{b:\"^( {4}|\t)\",e:\"$\",r:0}]},{cN:\"horizontal_rule\",b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"link_label\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,r:0},{cN:\"link_url\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"link_reference\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],r:10},{b:\"^\\\\[.+\\\\]:\",rB:!0,c:[{cN:\"link_reference\",b:\"\\\\[\",e:\"\\\\]:\",eB:!0,eE:!0,starts:{cN:\"link_url\",e:\"$\"}}]}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",r=\"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",b={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={cN:\"value\",b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[b]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[b],r:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:r},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",k:r},d=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{cN:\"inheritance\",b:\"<\\\\s*\",c:[{cN:\"parent\",b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{cN:\"constant\",b:\"(::)?(\\\\b[A-Z]\\\\w*(::)?)+\",r:0},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",r:0},{cN:\"symbol\",b:\":\",c:[t,{b:c}],r:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),r:0}].concat(n);s.c=d,i.c=d;var o=\"[>?]>\",l=\"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>\",u=\"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>\",N=[{b:/^\\s*=>/,cN:\"status\",starts:{e:\"$\",c:d}},{cN:\"prompt\",b:\"^(\"+o+\"|\"+l+\"|\"+u+\")\",starts:{e:\"$\",c:d}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:r,c:n.concat(N).concat(d)}});hljs.registerLanguage(\"makefile\",function(e){var a={cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]};return{aliases:[\"mk\",\"mak\"],c:[e.HCM,{b:/^\\w+\\s*\\W*=/,rB:!0,r:0,starts:{cN:\"constant\",e:/\\s*\\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:\"title\",b:/^[\\w]+:\\s*$/},{cN:\"phony\",b:/^\\.PHONY:/,e:/$/,k:\".PHONY\",l:/[\\.\\w]+/},{b:/^\\t+/,e:/$/,r:0,c:[e.QSM,a]}]}});hljs.registerLanguage(\"json\",function(e){var t={literal:\"true false null\"},i=[e.QSM,e.CNM],l={cN:\"value\",e:\",\",eW:!0,eE:!0,c:i,k:t},c={b:\"{\",e:\"}\",c:[{cN:\"attribute\",b:'\\\\s*\"',e:'\"\\\\s*:\\\\s*',eB:!0,eE:!0,c:[e.BE],i:\"\\\\n\",starts:l}],i:\"\\\\S\"},n={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(l,{cN:null})],i:\"\\\\S\"};return i.splice(i.length,0,c,n),{c:i,k:t,i:\"\\\\S\"}});hljs.registerLanguage(\"xml\",function(t){var s=\"[A-Za-z0-9\\\\._:-]+\",c={b:/<\\?(php)?(?!\\w)/,e:/\\?>/,sL:\"php\"},e={eW:!0,i:/</,r:0,c:[c,{cN:\"attribute\",b:s,r:0},{b:\"=\",r:0,c:[{cN:\"value\",c:[c],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/[^\\s\\/>]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xsl\",\"plist\"],cI:!0,c:[{cN:\"doctype\",b:\"<!DOCTYPE\",e:\">\",r:10,c:[{b:\"\\\\[\",e:\"\\\\]\"}]},t.C(\"<!--\",\"-->\",{r:10}),{cN:\"cdata\",b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",r:10},{cN:\"tag\",b:\"<style(?=\\\\s|>|$)\",e:\">\",k:{title:\"style\"},c:[e],starts:{e:\"</style>\",rE:!0,sL:\"css\"}},{cN:\"tag\",b:\"<script(?=\\\\s|>|$)\",e:\">\",k:{title:\"script\"},c:[e],starts:{e:\"</script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\"]}},c,{cN:\"pi\",b:/<\\?\\w+/,e:/\\?>/,r:10},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"title\",b:/[^ \\/><\\n\\t]+/,r:0},e]}]}});hljs.registerLanguage(\"css\",function(e){var c=\"[a-zA-Z-][a-zA-Z0-9_-]*\",a={cN:\"function\",b:c+\"\\\\(\",rB:!0,eE:!0,e:\"\\\\(\"},r={cN:\"rule\",b:/[A-Z\\_\\.\\-]+\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{cN:\"value\",eW:!0,eE:!0,c:[a,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"hexcolor\",b:\"#[0-9A-Fa-f]+\"},{cN:\"important\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,r,{cN:\"id\",b:/\\#[A-Za-z0-9_-]+/},{cN:\"class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"attr_selector\",b:/\\[/,e:/\\]/,i:\"$\"},{cN:\"pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"']+/},{cN:\"at_rule\",b:\"@(font-face|page)\",l:\"[a-z-]+\",k:\"font-face page\"},{cN:\"at_rule\",b:\"@\",e:\"[{;]\",c:[{cN:\"keyword\",b:/\\S+/},{b:/\\s/,eW:!0,eE:!0,r:0,c:[a,e.ASM,e.QSM,e.CSSNM]}]},{cN:\"tag\",b:c,r:0},{cN:\"rules\",b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,r]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={cN:\"variable\",v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,r:0}]},o=[e.BE,r,n],i=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:o,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",r:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",r:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",r:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",r:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",r:5},{b:\"qw\\\\s+q\",e:\"q\",r:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],r:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],r:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",r:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",r:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],r:0}]},{cN:\"sub\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",r:5},{cN:\"operator\",b:\"-\\\\w\\\\b\",r:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=i,s.c=i,{aliases:[\"pl\"],k:t,c:i}});hljs.registerLanguage(\"cs\",function(e){var r=\"abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield\",t=e.IR+\"(<\"+e.IR+\">)?\";return{aliases:[\"csharp\"],k:r,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"xmlDocTag\",v:[{b:\"///\",r:0},{b:\"<!--|-->\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line region endregion pragma checksum\"},{cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},e.ASM,e.QSM,e.CNM,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[{cN:\"title\",b:\"[a-zA-Z](\\\\.?\\\\w)*\",r:0},e.CLCM,e.CBCM]},{bK:\"new return throw await\",r:0},{cN:\"function\",b:\"(\"+t+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:r,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"tag\",b:\"</?\",e:\">\"},{cN:\"keyword\",b:/\\w+/,r:0,k:{common:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,r:0,k:{literal:\"on off all\"},c:[{cN:\"sqbracket\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"cbracket\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"http\",function(t){return{aliases:[\"https\"],i:\"\\\\S\",c:[{cN:\"status\",b:\"^HTTP/[0-9\\\\.]+\",e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{cN:\"request\",b:\"^[A-Z]+ (.*?) HTTP/[0-9\\\\.]+$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{cN:\"string\",e:\"$\"}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"objectivec\",function(e){var t={cN:\"built_in\",b:\"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\\\w+\"},i={keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},o=/[a-zA-Z@][a-zA-Z0-9_]*/,n=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:i,l:o,i:\"</\",c:[t,e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"'\",e:\"[^\\\\\\\\]'\",i:\"[^\\\\\\\\][^']\"}]},{cN:\"preprocessor\",b:\"#\",e:\"$\",c:[{cN:\"title\",v:[{b:'\"',e:'\"'},{b:\"<\",e:\">\"}]}]},{cN:\"class\",b:\"(\"+n.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:n,l:o,c:[e.UTM]},{cN:\"variable\",b:\"\\\\.\"+e.UIR,r:0}]}});hljs.registerLanguage(\"python\",function(e){var r={cN:\"prompt\",b:/^(>>>|\\.\\.\\.) /},b={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)\"/,e:/\"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},a={cN:\"number\",r:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},l={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",r,a,b]};return{aliases:[\"py\",\"gyp\"],k:{keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False\",built_in:\"Ellipsis NotImplemented\"},i:/(<\\/|->|\\?)/,c:[r,a,b,e.HCM,{v:[{cN:\"function\",bK:\"def\",r:10},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,l]},{cN:\"decorator\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"java\",function(e){var a=e.UIR+\"(<\"+e.UIR+\">)?\",t=\"false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private\",c=\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",r={cN:\"number\",b:c,r:0};return{aliases:[\"jsp\"],k:t,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{r:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+a+\"\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,r:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:\"annotation\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},s={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]},a={cN:\"string\",b:/'/,e:/'/};return{aliases:[\"sh\",\"zsh\"],l:/-?[a-z\\.]+/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",operator:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"shebang\",b:/^#![^\\n]+sh\\s*$/,r:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],r:0},e.HCM,e.NM,s,a,t]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{cN:\"operator\",bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke\",e:/;/,eW:!0,k:{keyword:\"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null\",built_in:\"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{built_in:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},r:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{cN:\"url\",b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",r:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"title\",b:e.UIR,starts:b}],r:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"cpp\",function(t){var e={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},r={cN:\"string\",v:[t.inherit(t.QSM,{b:'((u8?|U)|L)?\"'}),{b:'(u8?|U)?R\"',e:'\"',c:[t.BE]},{b:\"'\\\\\\\\?.\",e:\"'\",i:\".\"}]},s={cN:\"number\",v:[{b:\"\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)(u|U|l|L|ul|UL|f|F)\"},{b:t.CNR}]},i={cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line pragma ifdef ifndef\",c:[{b:/\\\\\\n/,r:0},{bK:\"include\",e:\"$\",c:[r,{cN:\"string\",b:\"<\",e:\">\",i:\"\\\\n\"}]},r,s,t.CLCM,t.CBCM]},a=t.IR+\"\\\\s*\\\\(\",c={keyword:\"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong\",built_in:\"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf\",literal:\"true false nullptr NULL\"};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\"],k:c,i:\"</\",c:[e,t.CLCM,t.CBCM,s,r,i,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:c,c:[\"self\",e]},{b:t.IR+\"::\",k:c},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+t.IR+\"[\\\\*&\\\\s]+)+\"+a,rB:!0,e:/[{;=]/,eE:!0,k:c,i:/[^\\w\\s\\*&]/,c:[{b:a,rB:!0,c:[t.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:c,r:0,c:[t.CLCM,t.CBCM,r,s]},t.CLCM,t.CBCM,i]}]}});hljs.registerLanguage(\"php\",function(e){var c={cN:\"variable\",b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},a={cN:\"preprocessor\",b:/<\\?(php)?|\\?>/},i={cN:\"string\",c:[e.BE,a],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},t={v:[e.BNM,e.CNM]};return{aliases:[\"php3\",\"php4\",\"php5\",\"php6\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.CLCM,e.HCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"},a]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},a,c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,i,t]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},i,t]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},t=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",r:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]*\",r:0},{b:/\\/(?![ *])(\\\\\\/|.)*?\\/[gim]*(?=\\W|$)/}]},{cN:\"property\",b:\"@\"+n},{b:\"`\",e:\"`\",eB:!0,eE:!0,sL:\"javascript\"}];r.c=t;var s=e.inherit(e.TM,{b:n}),i=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",o={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(t)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:t.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+i,e:\"[-=]>\",rB:!0,c:[s,o]},{b:/[:\\(,=]\\s*/,r:0,c:[{cN:\"function\",b:i,e:\"[-=]>\",rB:!0,c:[o]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{cN:\"attribute\",b:n+\":\",e:\":\",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage(\"javascript\",function(e){return{aliases:[\"js\"],k:{keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},c:[{cN:\"pi\",r:10,b:/^\\s*['\"]use (strict|asm)['\"]/},e.ASM,e.QSM,{cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,{cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\"}]},e.CLCM,e.CBCM,{cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)\"},{b:\"\\\\b(0[oO][0-7]+)\"},{b:e.CNR}],r:0},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{b:/</,e:/>\\s*[);\\]]/,r:0,sL:\"xml\"}],r:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\\[|%/},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,r:0},{bK:\"import\",e:\"[;$]\",k:\"import from as\",c:[e.ASM,e.QSM]},{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]}],i:/#/}});hljs.registerLanguage(\"ini\",function(e){var c={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",r:10},{b:'\"\"\"',e:'\"\"\"',r:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[e.C(\";\",\"$\"),e.HCM,{cN:\"title\",b:/^\\s*\\[+/,e:/\\]+/},{cN:\"setting\",b:/^[a-z0-9\\[\\]_-]+\\s*=\\s*/,e:\"$\",c:[{cN:\"value\",eW:!0,k:\"on off true false yes no\",c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},c,{cN:\"number\",b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},e.NM],r:0}]}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"chunk\",r:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"header\",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\\-\\-\\-/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+\\+\\+/,e:/$/},{b:/\\*{5}/,e:/\\*{5}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"change\",b:\"^\\\\!\",e:\"$\"}]}});\nexports.hljs = hljs;\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/highlight/highlight.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/highlight/highlight.css": {
            "text": "/*\n\nOriginal style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>\n\n*/\n\n.hljs {\n  display: block;\n  overflow-x: auto;\n  padding: 0.5em;\n  background: #f0f0f0;\n  -webkit-text-size-adjust: none;\n}\n\n.hljs,\n.hljs-subst,\n.hljs-tag .hljs-title,\n.nginx .hljs-title {\n  color: black;\n}\n\n.hljs-string,\n.hljs-title,\n.hljs-constant,\n.hljs-parent,\n.hljs-tag .hljs-value,\n.hljs-rule .hljs-value,\n.hljs-preprocessor,\n.hljs-pragma,\n.hljs-name,\n.haml .hljs-symbol,\n.ruby .hljs-symbol,\n.ruby .hljs-symbol .hljs-string,\n.hljs-template_tag,\n.django .hljs-variable,\n.smalltalk .hljs-class,\n.hljs-addition,\n.hljs-flow,\n.hljs-stream,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.apache .hljs-cbracket,\n.tex .hljs-command,\n.tex .hljs-special,\n.erlang_repl .hljs-function_or_atom,\n.asciidoc .hljs-header,\n.markdown .hljs-header,\n.coffeescript .hljs-attribute,\n.tp .hljs-variable {\n  color: #800;\n}\n\n.smartquote,\n.hljs-comment,\n.hljs-annotation,\n.diff .hljs-header,\n.hljs-chunk,\n.asciidoc .hljs-blockquote,\n.markdown .hljs-blockquote {\n  color: #888;\n}\n\n.hljs-number,\n.hljs-date,\n.hljs-regexp,\n.hljs-literal,\n.hljs-hexcolor,\n.smalltalk .hljs-symbol,\n.smalltalk .hljs-char,\n.go .hljs-constant,\n.hljs-change,\n.lasso .hljs-variable,\n.makefile .hljs-variable,\n.asciidoc .hljs-bullet,\n.markdown .hljs-bullet,\n.asciidoc .hljs-link_url,\n.markdown .hljs-link_url {\n  color: #080;\n}\n\n.hljs-label,\n.ruby .hljs-string,\n.hljs-decorator,\n.hljs-filter .hljs-argument,\n.hljs-localvars,\n.hljs-array,\n.hljs-attr_selector,\n.hljs-important,\n.hljs-pseudo,\n.hljs-pi,\n.haml .hljs-bullet,\n.hljs-doctype,\n.hljs-deletion,\n.hljs-envvar,\n.hljs-shebang,\n.apache .hljs-sqbracket,\n.nginx .hljs-built_in,\n.tex .hljs-formula,\n.erlang_repl .hljs-reserved,\n.hljs-prompt,\n.asciidoc .hljs-link_label,\n.markdown .hljs-link_label,\n.vhdl .hljs-attribute,\n.clojure .hljs-attribute,\n.asciidoc .hljs-attribute,\n.lasso .hljs-attribute,\n.coffeescript .hljs-property,\n.hljs-phony {\n  color: #88f;\n}\n\n.hljs-keyword,\n.hljs-id,\n.hljs-title,\n.hljs-built_in,\n.css .hljs-tag,\n.hljs-doctag,\n.smalltalk .hljs-class,\n.hljs-winutils,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.hljs-type,\n.hljs-typename,\n.tex .hljs-command,\n.asciidoc .hljs-strong,\n.markdown .hljs-strong,\n.hljs-request,\n.hljs-status,\n.tp .hljs-data,\n.tp .hljs-io {\n  font-weight: bold;\n}\n\n.asciidoc .hljs-emphasis,\n.markdown .hljs-emphasis,\n.tp .hljs-units {\n  font-style: italic;\n}\n\n.nginx .hljs-built_in {\n  font-weight: normal;\n}\n\n.coffeescript .javascript,\n.javascript .xml,\n.lasso .markup,\n.tex .hljs-formula,\n.xml .javascript,\n.xml .vbscript,\n.xml .css,\n.xml .hljs-cdata {\n  opacity: 0.5;\n}\n",
            "type": "text/css",
            "title": "$:/plugins/tiddlywiki/highlight/highlight.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/highlight/highlightblock.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \"    \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.listLanguages().indexOf(language) !== -1) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/tiddlywiki/highlight/license": {
            "title": "$:/plugins/tiddlywiki/highlight/license",
            "type": "text/plain",
            "text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n    * Neither the name of highlight.js nor the names of its contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
        },
        "$:/plugins/tiddlywiki/highlight/readme": {
            "title": "$:/plugins/tiddlywiki/highlight/readme",
            "text": "This plugin provides syntax highlighting of code blocks using v8.8.0 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1   { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* bash\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* http\n* ini\n* java\n* javascript\n* json\n* makefile\n* markdown\n* nginx\n* objectivec\n* perl\n* php\n* python\n* ruby\n* sql\n* xml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
        },
        "$:/plugins/tiddlywiki/highlight/styles": {
            "title": "$:/plugins/tiddlywiki/highlight/styles",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": ".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"
        },
        "$:/plugins/tiddlywiki/highlight/usage": {
            "title": "$:/plugins/tiddlywiki/highlight/usage",
            "text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/katex/katex.min.css": {
            "text": ".katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:400 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathrm{font-style:normal}.katex .textit{font-style:italic}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .mord+.mop{margin-left:.16667em}.katex .mord+.mbin{margin-left:.22222em}.katex .mord+.mrel{margin-left:.27778em}.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.minner{margin-left:.16667em}.katex .mop+.mrel{margin-left:.27778em}.katex .mop+.minner{margin-left:.16667em}.katex .mbin+.minner,.katex .mbin+.mop,.katex .mbin+.mopen,.katex .mbin+.mord{margin-left:.22222em}.katex .mrel+.minner,.katex .mrel+.mop,.katex .mrel+.mopen,.katex .mrel+.mord{margin-left:.27778em}.katex .mclose+.mop{margin-left:.16667em}.katex .mclose+.mbin{margin-left:.22222em}.katex .mclose+.mrel{margin-left:.27778em}.katex .mclose+.minner,.katex .minner+.mop,.katex .minner+.mord,.katex .mpunct+.mclose,.katex .mpunct+.minner,.katex .mpunct+.mop,.katex .mpunct+.mopen,.katex .mpunct+.mord,.katex .mpunct+.mpunct,.katex .mpunct+.mrel{margin-left:.16667em}.katex .minner+.mbin{margin-left:.22222em}.katex .minner+.mrel{margin-left:.27778em}.katex .minner+.minner,.katex .minner+.mopen,.katex .minner+.mpunct{margin-left:.16667em}.katex .mbin.mtight,.katex .mclose.mtight,.katex .minner.mtight,.katex .mop.mtight,.katex .mopen.mtight,.katex .mord.mtight,.katex .mpunct.mtight,.katex .mrel.mtight{margin-left:0}.katex .mclose+.mop.mtight,.katex .minner+.mop.mtight,.katex .mop+.mop.mtight,.katex .mop+.mord.mtight,.katex .mord+.mop.mtight{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:\"\";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:\"\";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.negativemediumspace{margin-left:-.22222em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.sixmuspace{width:.333333em}.katex .mspace.eightmuspace{width:.444444em}.katex .mspace.enspace{width:.5em}.katex .mspace.twelvemuspace{width:.666667em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{width:100%}.katex .overline .overline-line:before,.katex .underline .underline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:\"\";display:block}.katex .overline .overline-line:after,.katex .underline .underline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:\"\";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:\"\";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:\"\";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid #000}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist{text-align:center}.katex .mtable .col-align-l>.vlist{text-align:left}.katex .mtable .col-align-r>.vlist{text-align:right}",
            "type": "text/plain",
            "title": "$:/plugins/tiddlywiki/katex/katex.min.css"
        },
        "$:/plugins/tiddlywiki/katex/katex.min.js": {
            "text": "(function(document) {\n(function(e){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=e()}else if(typeof define===\"function\"&&define.amd){define([],e)}else{var t;if(typeof window!==\"undefined\"){t=window}else if(typeof global!==\"undefined\"){t=global}else if(typeof self!==\"undefined\"){t=self}else{t=this}t.katex=e()}})(function(){var e,t,r;return function a(e,t,r){function i(s,l){if(!t[s]){if(!e[s]){var o=typeof require==\"function\"&&require;if(!l&&o)return o(s,!0);if(n)return n(s,!0);var u=new Error(\"Cannot find module '\"+s+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var p=t[s]={exports:{}};e[s][0].call(p.exports,function(t){var r=e[s][1][t];return i(r?r:t)},p,p.exports,a,e,t,r)}return t[s].exports}var n=typeof require==\"function\"&&require;for(var s=0;s<r.length;s++)i(r[s]);return i}({1:[function(e,t,r){var a=e(\"./src/ParseError\");var i=e(\"./src/Settings\");var n=e(\"./src/buildTree\");var s=e(\"./src/parseTree\");var l=e(\"./src/utils\");var o=function(e,t,r){l.clearNode(t);var a=new i(r);var o=s(e,a);var u=n(o,e,a).toNode();t.appendChild(u)};if(typeof document!==\"undefined\"){if(document.compatMode!==\"CSS1Compat\"){typeof console!==\"undefined\"&&console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \"+\"website has a suitable doctype.\");o=function(){throw new a(\"KaTeX doesn't work in quirks mode.\")}}}var u=function(e,t){var r=new i(t);var a=s(e,r);return n(a,e,r).toMarkup()};var p=function(e,t){var r=new i(t);return s(e,r)};t.exports={render:o,renderToString:u,__parse:p,ParseError:a}},{\"./src/ParseError\":6,\"./src/Settings\":8,\"./src/buildTree\":13,\"./src/parseTree\":22,\"./src/utils\":25}],2:[function(e,t,r){\"use strict\";function a(e){if(!e.__matchAtRelocatable){var t=e.source+\"|()\";var r=\"g\"+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\");e.__matchAtRelocatable=new RegExp(t,r)}return e.__matchAtRelocatable}function i(e,t,r){if(e.global||e.sticky){throw new Error(\"matchAt(...): Only non-global regexes are supported\")}var i=a(e);i.lastIndex=r;var n=i.exec(t);if(n[n.length-1]==null){n.length=n.length-1;return n}else{return null}}t.exports=i},{}],3:[function(e,t,r){var a=e(\"match-at\");var i=e(\"./ParseError\");function n(e){this.input=e;this.pos=0}function s(e,t,r,a){this.text=e;this.start=t;this.end=r;this.lexer=a}s.prototype.range=function(e,t){if(e.lexer!==this.lexer){return new s(t)}return new s(t,this.start,e.end,this.lexer)};var l=new RegExp(\"([ \\r\\n\t]+)|\"+\"([!-\\\\[\\\\]-\\u2027\\u202a-\\ud7ff\\uf900-\\uffff]\"+\"|[\\ud800-\\udbff][\\udc00-\\udfff]\"+\"|\\\\\\\\(?:[a-zA-Z]+|[^\\ud800-\\udfff])\"+\")\");n.prototype.lex=function(){var e=this.input;var t=this.pos;if(t===e.length){return new s(\"EOF\",t,t,this)}var r=a(l,e,t);if(r===null){throw new i(\"Unexpected character: '\"+e[t]+\"'\",new s(e[t],t,t+1,this))}var n=r[2]||\" \";var o=this.pos;this.pos+=r[0].length;var u=this.pos;return new s(n,o,u,this)};t.exports=n},{\"./ParseError\":6,\"match-at\":2}],4:[function(e,t,r){var a=e(\"./Lexer\");function i(e,t){this.lexer=new a(e);this.macros=t;this.stack=[];this.discardedWhiteSpace=[]}i.prototype.nextToken=function(){for(;;){if(this.stack.length===0){this.stack.push(this.lexer.lex())}var e=this.stack.pop();var t=e.text;if(!(t.charAt(0)===\"\\\\\"&&this.macros.hasOwnProperty(t))){return e}var r=this.macros[t];if(typeof r===\"string\"){var i=new a(r);r=[];var n=i.lex();while(n.text!==\"EOF\"){r.push(n);n=i.lex()}r.reverse();this.macros[t]=r}this.stack=this.stack.concat(r)}};i.prototype.get=function(e){this.discardedWhiteSpace=[];var t=this.nextToken();if(e){while(t.text===\" \"){this.discardedWhiteSpace.push(t);t=this.nextToken()}}return t};i.prototype.unget=function(e){this.stack.push(e);while(this.discardedWhiteSpace.length!==0){this.stack.push(this.discardedWhiteSpace.pop())}};t.exports=i},{\"./Lexer\":3}],5:[function(e,t,r){function a(e){this.style=e.style;this.color=e.color;this.size=e.size;this.phantom=e.phantom;this.font=e.font;if(e.parentStyle===undefined){this.parentStyle=e.style}else{this.parentStyle=e.parentStyle}if(e.parentSize===undefined){this.parentSize=e.size}else{this.parentSize=e.parentSize}}a.prototype.extend=function(e){var t={style:this.style,size:this.size,color:this.color,parentStyle:this.style,parentSize:this.size,phantom:this.phantom,font:this.font};for(var r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return new a(t)};a.prototype.withStyle=function(e){return this.extend({style:e})};a.prototype.withSize=function(e){return this.extend({size:e})};a.prototype.withColor=function(e){return this.extend({color:e})};a.prototype.withPhantom=function(){return this.extend({phantom:true})};a.prototype.withFont=function(e){return this.extend({font:e||this.font})};a.prototype.reset=function(){return this.extend({})};var i={\"katex-blue\":\"#6495ed\",\"katex-orange\":\"#ffa500\",\"katex-pink\":\"#ff00af\",\"katex-red\":\"#df0030\",\"katex-green\":\"#28ae7b\",\"katex-gray\":\"gray\",\"katex-purple\":\"#9d38bd\",\"katex-blueA\":\"#ccfaff\",\"katex-blueB\":\"#80f6ff\",\"katex-blueC\":\"#63d9ea\",\"katex-blueD\":\"#11accd\",\"katex-blueE\":\"#0c7f99\",\"katex-tealA\":\"#94fff5\",\"katex-tealB\":\"#26edd5\",\"katex-tealC\":\"#01d1c1\",\"katex-tealD\":\"#01a995\",\"katex-tealE\":\"#208170\",\"katex-greenA\":\"#b6ffb0\",\"katex-greenB\":\"#8af281\",\"katex-greenC\":\"#74cf70\",\"katex-greenD\":\"#1fab54\",\"katex-greenE\":\"#0d923f\",\"katex-goldA\":\"#ffd0a9\",\"katex-goldB\":\"#ffbb71\",\"katex-goldC\":\"#ff9c39\",\"katex-goldD\":\"#e07d10\",\"katex-goldE\":\"#a75a05\",\"katex-redA\":\"#fca9a9\",\"katex-redB\":\"#ff8482\",\"katex-redC\":\"#f9685d\",\"katex-redD\":\"#e84d39\",\"katex-redE\":\"#bc2612\",\"katex-maroonA\":\"#ffbde0\",\"katex-maroonB\":\"#ff92c6\",\"katex-maroonC\":\"#ed5fa6\",\"katex-maroonD\":\"#ca337c\",\"katex-maroonE\":\"#9e034e\",\"katex-purpleA\":\"#ddd7ff\",\"katex-purpleB\":\"#c6b9fc\",\"katex-purpleC\":\"#aa87ff\",\"katex-purpleD\":\"#7854ab\",\"katex-purpleE\":\"#543b78\",\"katex-mintA\":\"#f5f9e8\",\"katex-mintB\":\"#edf2df\",\"katex-mintC\":\"#e0e5cc\",\"katex-grayA\":\"#f6f7f7\",\"katex-grayB\":\"#f0f1f2\",\"katex-grayC\":\"#e3e5e6\",\"katex-grayD\":\"#d6d8da\",\"katex-grayE\":\"#babec2\",\"katex-grayF\":\"#888d93\",\"katex-grayG\":\"#626569\",\"katex-grayH\":\"#3b3e40\",\"katex-grayI\":\"#21242c\",\"katex-kaBlue\":\"#314453\",\"katex-kaGreen\":\"#71B307\"};a.prototype.getColor=function(){if(this.phantom){return\"transparent\"}else{return i[this.color]||this.color}};t.exports=a},{}],6:[function(e,t,r){function a(e,t){var r=\"KaTeX parse error: \"+e;var i;var n;if(t&&t.lexer&&t.start<=t.end){var s=t.lexer.input;i=t.start;n=t.end;if(i===s.length){r+=\" at end of input: \"}else{r+=\" at position \"+(i+1)+\": \"}var l=s.slice(i,n).replace(/[^]/g,\"$&\\u0332\");var o;if(i>15){o=\"\\u2026\"+s.slice(i-15,i)}else{o=s.slice(0,i)}var u;if(n+15<s.length){u=s.slice(n,n+15)+\"\\u2026\"}else{u=s.slice(n)}r+=o+l+u}var p=new Error(r);p.name=\"ParseError\";p.__proto__=a.prototype;p.position=i;return p}a.prototype.__proto__=Error.prototype;t.exports=a},{}],7:[function(e,t,r){var a=e(\"./functions\");var i=e(\"./environments\");var n=e(\"./MacroExpander\");var s=e(\"./symbols\");var l=e(\"./utils\");var o=e(\"./unicodeRegexes\").cjkRegex;var u=e(\"./parseData\");var p=e(\"./ParseError\");function h(e,t){this.gullet=new n(e,t.macros);this.settings=t;this.leftrightDepth=0}var c=u.ParseNode;function m(e,t,r){this.result=e;this.isFunction=t;this.token=r}h.prototype.expect=function(e,t){if(this.nextToken.text!==e){throw new p(\"Expected '\"+e+\"', got '\"+this.nextToken.text+\"'\",this.nextToken)}if(t!==false){this.consume()}};h.prototype.consume=function(){this.nextToken=this.gullet.get(this.mode===\"math\")};h.prototype.switchMode=function(e){this.gullet.unget(this.nextToken);this.mode=e;this.consume()};h.prototype.parse=function(){this.mode=\"math\";this.consume();var e=this.parseInput();return e};h.prototype.parseInput=function(){var e=this.parseExpression(false);this.expect(\"EOF\",false);return e};var f=[\"}\",\"\\\\end\",\"\\\\right\",\"&\",\"\\\\\\\\\",\"\\\\cr\"];h.prototype.parseExpression=function(e,t){var r=[];while(true){var i=this.nextToken;if(f.indexOf(i.text)!==-1){break}if(t&&i.text===t){break}if(e&&a[i.text]&&a[i.text].infix){break}var n=this.parseAtom();if(!n){if(!this.settings.throwOnError&&i.text[0]===\"\\\\\"){var s=this.handleUnsupportedCmd();r.push(s);continue}break}r.push(n)}return this.handleInfixNodes(r)};h.prototype.handleInfixNodes=function(e){var t=-1;var r;for(var a=0;a<e.length;a++){var i=e[a];if(i.type===\"infix\"){if(t!==-1){throw new p(\"only one infix operator per group\",i.value.token)}t=a;r=i.value.replaceWith}}if(t!==-1){var n;var s;var l=e.slice(0,t);var o=e.slice(t+1);if(l.length===1&&l[0].type===\"ordgroup\"){n=l[0]}else{n=new c(\"ordgroup\",l,this.mode)}if(o.length===1&&o[0].type===\"ordgroup\"){s=o[0]}else{s=new c(\"ordgroup\",o,this.mode)}var u=this.callFunction(r,[n,s],null);return[new c(u.type,u,this.mode)]}else{return e}};var v=1;h.prototype.handleSupSubscript=function(e){var t=this.nextToken;var r=t.text;this.consume();var i=this.parseGroup();if(!i){if(!this.settings.throwOnError&&this.nextToken.text[0]===\"\\\\\"){return this.handleUnsupportedCmd()}else{throw new p(\"Expected group after '\"+r+\"'\",t)}}else if(i.isFunction){var n=a[i.result].greediness;if(n>v){return this.parseFunction(i)}else{throw new p(\"Got function '\"+i.result+\"' with no arguments \"+\"as \"+e,t)}}else{return i.result}};h.prototype.handleUnsupportedCmd=function(){var e=this.nextToken.text;var t=[];for(var r=0;r<e.length;r++){t.push(new c(\"textord\",e[r],\"text\"))}var a=new c(\"text\",{body:t,type:\"text\"},this.mode);var i=new c(\"color\",{color:this.settings.errorColor,value:[a],type:\"color\"},this.mode);this.consume();return i};h.prototype.parseAtom=function(){var e=this.parseImplicitGroup();if(this.mode===\"text\"){return e}var t;var r;while(true){var a=this.nextToken;if(a.text===\"\\\\limits\"||a.text===\"\\\\nolimits\"){if(!e||e.type!==\"op\"){throw new p(\"Limit controls must follow a math operator\",a)}else{var i=a.text===\"\\\\limits\";e.value.limits=i;e.value.alwaysHandleSupSub=true}this.consume()}else if(a.text===\"^\"){if(t){throw new p(\"Double superscript\",a)}t=this.handleSupSubscript(\"superscript\")}else if(a.text===\"_\"){if(r){throw new p(\"Double subscript\",a)}r=this.handleSupSubscript(\"subscript\")}else if(a.text===\"'\"){var n=new c(\"textord\",\"\\\\prime\",this.mode);var s=[n];this.consume();while(this.nextToken.text===\"'\"){s.push(n);this.consume()}t=new c(\"ordgroup\",s,this.mode)}else{break}}if(t||r){return new c(\"supsub\",{base:e,sup:t,sub:r},this.mode)}else{return e}};var d=[\"\\\\tiny\",\"\\\\scriptsize\",\"\\\\footnotesize\",\"\\\\small\",\"\\\\normalsize\",\"\\\\large\",\"\\\\Large\",\"\\\\LARGE\",\"\\\\huge\",\"\\\\Huge\"];var g=[\"\\\\displaystyle\",\"\\\\textstyle\",\"\\\\scriptstyle\",\"\\\\scriptscriptstyle\"];h.prototype.parseImplicitGroup=function(){var e=this.parseSymbol();if(e==null){return this.parseFunction()}var t=e.result;var r;if(t===\"\\\\left\"){var a=this.parseFunction(e);++this.leftrightDepth;r=this.parseExpression(false);--this.leftrightDepth;this.expect(\"\\\\right\",false);var n=this.parseFunction();return new c(\"leftright\",{body:r,left:a.value.value,right:n.value.value},this.mode)}else if(t===\"\\\\begin\"){var s=this.parseFunction(e);var o=s.value.name;if(!i.hasOwnProperty(o)){throw new p(\"No such environment: \"+o,s.value.nameGroup)}var u=i[o];var h=this.parseArguments(\"\\\\begin{\"+o+\"}\",u);var m={mode:this.mode,envName:o,parser:this,positions:h.pop()};var f=u.handler(m,h);this.expect(\"\\\\end\",false);var v=this.nextToken;var y=this.parseFunction();if(y.value.name!==o){throw new p(\"Mismatch: \\\\begin{\"+o+\"} matched \"+\"by \\\\end{\"+y.value.name+\"}\",v)}f.position=y.position;return f}else if(l.contains(d,t)){r=this.parseExpression(false);return new c(\"sizing\",{size:\"size\"+(l.indexOf(d,t)+1),value:r},this.mode)}else if(l.contains(g,t)){r=this.parseExpression(true);return new c(\"styling\",{style:t.slice(1,t.length-5),value:r},this.mode)}else{return this.parseFunction(e)}};h.prototype.parseFunction=function(e){if(!e){e=this.parseGroup()}if(e){if(e.isFunction){var t=e.result;var r=a[t];if(this.mode===\"text\"&&!r.allowedInText){throw new p(\"Can't use function '\"+t+\"' in text mode\",e.token)}var i=this.parseArguments(t,r);var n=e.token;var s=this.callFunction(t,i,i.pop(),n);return new c(s.type,s,this.mode)}else{return e.result}}else{return null}};h.prototype.callFunction=function(e,t,r,i){var n={funcName:e,parser:this,positions:r,token:i};return a[e].handler(n,t)};h.prototype.parseArguments=function(e,t){var r=t.numArgs+t.numOptionalArgs;if(r===0){return[[this.pos]]}var i=t.greediness;var n=[this.pos];var s=[];for(var l=0;l<r;l++){var o=this.nextToken;var u=t.argTypes&&t.argTypes[l];var h;if(l<t.numOptionalArgs){if(u){h=this.parseGroupOfType(u,true)}else{h=this.parseGroup(true)}if(!h){s.push(null);n.push(this.pos);continue}}else{if(u){h=this.parseGroupOfType(u)}else{h=this.parseGroup()}if(!h){if(!this.settings.throwOnError&&this.nextToken.text[0]===\"\\\\\"){h=new m(this.handleUnsupportedCmd(this.nextToken.text),false)}else{throw new p(\"Expected group after '\"+e+\"'\",o)}}}var c;if(h.isFunction){var f=a[h.result].greediness;if(f>i){c=this.parseFunction(h)}else{throw new p(\"Got function '\"+h.result+\"' as \"+\"argument to '\"+e+\"'\",o)}}else{c=h.result}s.push(c);n.push(this.pos)}s.push(n);return s};h.prototype.parseGroupOfType=function(e,t){var r=this.mode;if(e===\"original\"){e=r}if(e===\"color\"){return this.parseColorGroup(t)}if(e===\"size\"){return this.parseSizeGroup(t)}this.switchMode(e);if(e===\"text\"){while(this.nextToken.text===\" \"){this.consume()}}var a=this.parseGroup(t);this.switchMode(r);return a};h.prototype.parseStringGroup=function(e,t){if(t&&this.nextToken.text!==\"[\"){return null}var r=this.mode;this.mode=\"text\";this.expect(t?\"[\":\"{\");var a=\"\";var i=this.nextToken;var n=i;while(this.nextToken.text!==(t?\"]\":\"}\")){if(this.nextToken.text===\"EOF\"){throw new p(\"Unexpected end of input in \"+e,i.range(this.nextToken,a))}n=this.nextToken;a+=n.text;this.consume()}this.mode=r;this.expect(t?\"]\":\"}\");return i.range(n,a)};h.prototype.parseRegexGroup=function(e,t){var r=this.mode;this.mode=\"text\";var a=this.nextToken;var i=a;var n=\"\";while(this.nextToken.text!==\"EOF\"&&e.test(n+this.nextToken.text)){i=this.nextToken;n+=i.text;this.consume()}if(n===\"\"){throw new p(\"Invalid \"+t+\": '\"+a.text+\"'\",a)}this.mode=r;return a.range(i,n)};h.prototype.parseColorGroup=function(e){var t=this.parseStringGroup(\"color\",e);if(!t){return null}var r=/^(#[a-z0-9]+|[a-z]+)$/i.exec(t.text);if(!r){throw new p(\"Invalid color: '\"+t.text+\"'\",t)}return new m(new c(\"color\",r[0],this.mode),false)};h.prototype.parseSizeGroup=function(e){var t;if(!e&&this.nextToken.text!==\"{\"){t=this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2}$/,\"size\")}else{t=this.parseStringGroup(\"size\",e)}if(!t){return null}var r=/([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(t.text);if(!r){throw new p(\"Invalid size: '\"+t.text+\"'\",t)}var a={number:+(r[1]+r[2]),unit:r[3]};if(a.unit!==\"em\"&&a.unit!==\"ex\"&&a.unit!==\"mu\"){throw new p(\"Invalid unit: '\"+a.unit+\"'\",t)}return new m(new c(\"color\",a,this.mode),false)};h.prototype.parseGroup=function(e){var t=this.nextToken;if(this.nextToken.text===(e?\"[\":\"{\")){this.consume();var r=this.parseExpression(false,e?\"]\":null);var a=this.nextToken;this.expect(e?\"]\":\"}\");if(this.mode===\"text\"){this.formLigatures(r)}return new m(new c(\"ordgroup\",r,this.mode,t,a),false)}else{return e?null:this.parseSymbol()}};h.prototype.formLigatures=function(e){var t;var r=e.length-1;for(t=0;t<r;++t){var a=e[t];var i=a.value;if(i===\"-\"&&e[t+1].value===\"-\"){if(t+1<r&&e[t+2].value===\"-\"){e.splice(t,3,new c(\"textord\",\"---\",\"text\",a,e[t+2]));r-=2}else{e.splice(t,2,new c(\"textord\",\"--\",\"text\",a,e[t+1]));r-=1}}if((i===\"'\"||i===\"`\")&&e[t+1].value===i){e.splice(t,2,new c(\"textord\",i+i,\"text\",a,e[t+1]));r-=1}}};h.prototype.parseSymbol=function(){var e=this.nextToken;if(a[e.text]){this.consume();return new m(e.text,true,e)}else if(s[this.mode][e.text]){this.consume();return new m(new c(s[this.mode][e.text].group,e.text,this.mode,e),false,e)}else if(this.mode===\"text\"&&o.test(e.text)){this.consume();return new m(new c(\"textord\",e.text,this.mode,e),false,e)}else{return null}};h.prototype.ParseNode=c;t.exports=h},{\"./MacroExpander\":4,\"./ParseError\":6,\"./environments\":16,\"./functions\":19,\"./parseData\":21,\"./symbols\":23,\"./unicodeRegexes\":24,\"./utils\":25}],8:[function(e,t,r){function a(e,t){return e===undefined?t:e}function i(e){e=e||{};this.displayMode=a(e.displayMode,false);this.throwOnError=a(e.throwOnError,true);this.errorColor=a(e.errorColor,\"#cc0000\");this.macros=e.macros||{}}t.exports=i},{}],9:[function(e,t,r){var a=e(\"./fontMetrics.js\").sigmas;var i=[{},{},{}];var n;for(var s in a){if(a.hasOwnProperty(s)){for(n=0;n<3;n++){i[n][s]=a[s][n]}}}for(n=0;n<3;n++){i[n].emPerEx=a.xHeight[n]/a.quad[n]}function l(e,t,r,a){this.id=e;this.size=t;this.cramped=a;this.sizeMultiplier=r;this.metrics=i[t>0?t-1:0]}l.prototype.sup=function(){return y[x[this.id]]};l.prototype.sub=function(){return y[b[this.id]]};l.prototype.fracNum=function(){return y[w[this.id]]};l.prototype.fracDen=function(){return y[k[this.id]]};l.prototype.cramp=function(){return y[z[this.id]]};l.prototype.cls=function(){return d[this.size]+(this.cramped?\" cramped\":\" uncramped\")};l.prototype.reset=function(){return g[this.size]};l.prototype.isTight=function(){return this.size>=2};var o=0;var u=1;var p=2;var h=3;var c=4;var m=5;var f=6;var v=7;var d=[\"displaystyle textstyle\",\"textstyle\",\"scriptstyle\",\"scriptscriptstyle\"];var g=[\"reset-textstyle\",\"reset-textstyle\",\"reset-scriptstyle\",\"reset-scriptscriptstyle\"];var y=[new l(o,0,1,false),new l(u,0,1,true),new l(p,1,1,false),new l(h,1,1,true),new l(c,2,.7,false),new l(m,2,.7,true),new l(f,3,.5,false),new l(v,3,.5,true)];var x=[c,m,c,m,f,v,f,v];var b=[m,m,m,m,v,v,v,v];var w=[p,h,c,m,f,v,f,v];var k=[h,h,m,m,v,v,v,v];var z=[u,u,h,h,m,m,v,v];t.exports={DISPLAY:y[o],TEXT:y[p],SCRIPT:y[c],SCRIPTSCRIPT:y[f]}},{\"./fontMetrics.js\":17}],10:[function(e,t,r){var a=e(\"./domTree\");var i=e(\"./fontMetrics\");var n=e(\"./symbols\");var s=e(\"./utils\");var l=[\"\\\\Gamma\",\"\\\\Delta\",\"\\\\Theta\",\"\\\\Lambda\",\"\\\\Xi\",\"\\\\Pi\",\"\\\\Sigma\",\"\\\\Upsilon\",\"\\\\Phi\",\"\\\\Psi\",\"\\\\Omega\"];var o=[\"\\u0131\",\"\\u0237\",\"\\xa3\"];var u=function(e,t,r,s,l){if(n[r][e]&&n[r][e].replace){e=n[r][e].replace}var o=i.getCharacterMetrics(e,t);var u;if(o){var p=o.italic;if(r===\"text\"){p=0}u=new a.symbolNode(e,o.height,o.depth,p,o.skew,l)}else{typeof console!==\"undefined\"&&console.warn(\"No character metrics for '\"+e+\"' in style '\"+t+\"'\");u=new a.symbolNode(e,0,0,0,0,l)}if(s){if(s.style.isTight()){u.classes.push(\"mtight\")}if(s.getColor()){u.style.color=s.getColor()}}return u};var p=function(e,t,r,a){if(e===\"\\\\\"||n[t][e].font===\"main\"){return u(e,\"Main-Regular\",t,r,a)}else{return u(e,\"AMS-Regular\",t,r,a.concat([\"amsrm\"]))}};var h=function(e,t,r,a,i){if(i===\"mathord\"){return c(e,t,r,a)}else if(i===\"textord\"){return u(e,\"Main-Regular\",t,r,a.concat([\"mathrm\"]))}else{throw new Error(\"unexpected type: \"+i+\" in mathDefault\")}};var c=function(e,t,r,a){if(/[0-9]/.test(e.charAt(0))||s.contains(o,e)||s.contains(l,e)){return u(e,\"Main-Italic\",t,r,a.concat([\"mainit\"]))}else{return u(e,\"Math-Italic\",t,r,a.concat([\"mathit\"]))}};var m=function(e,t,r){var a=e.mode;var l=e.value;if(n[a][l]&&n[a][l].replace){l=n[a][l].replace}var p=[\"mord\"];var m=t.font;if(m){if(m===\"mathit\"||s.contains(o,l)){return c(l,a,t,p)}else{var f=k[m].fontName;if(i.getCharacterMetrics(l,f)){return u(l,f,a,t,p.concat([m]))}else{return h(l,a,t,p,r)}}}else{return h(l,a,t,p,r)}};var f=function(e){var t=0;var r=0;var a=0;if(e.children){for(var i=0;i<e.children.length;i++){if(e.children[i].height>t){t=e.children[i].height}if(e.children[i].depth>r){r=e.children[i].depth}if(e.children[i].maxFontSize>a){a=e.children[i].maxFontSize}}}e.height=t;e.depth=r;e.maxFontSize=a};var v=function(e,t,r){var i=new a.span(e,t,r);f(i);return i};var d=function(e,t){e.children=t.concat(e.children);f(e)};var g=function(e){var t=new a.documentFragment(e);f(t);return t};var y=function(e,t){var r=v([],[new a.symbolNode(\"\\u200b\")]);r.style.fontSize=t/e.style.sizeMultiplier+\"em\";var i=v([\"fontsize-ensurer\",\"reset-\"+e.size,\"size5\"],[r]);return i};var x=function(e,t,r,i){var n;var s;var l;if(t===\"individualShift\"){var o=e;e=[o[0]];n=-o[0].shift-o[0].elem.depth;s=n;for(l=1;l<o.length;l++){var u=-o[l].shift-s-o[l].elem.depth;var p=u-(o[l-1].elem.height+o[l-1].elem.depth);s=s+u;e.push({type:\"kern\",size:p});e.push(o[l])}}else if(t===\"top\"){var h=r;for(l=0;l<e.length;l++){if(e[l].type===\"kern\"){h-=e[l].size}else{h-=e[l].elem.height+e[l].elem.depth}}n=h}else if(t===\"bottom\"){n=-r}else if(t===\"shift\"){n=-e[0].elem.depth-r}else if(t===\"firstBaseline\"){n=-e[0].elem.depth}else{n=0}var c=0;for(l=0;l<e.length;l++){if(e[l].type===\"elem\"){c=Math.max(c,e[l].elem.maxFontSize)}}var m=y(i,c);var f=[];s=n;for(l=0;l<e.length;l++){if(e[l].type===\"kern\"){s+=e[l].size}else{var d=e[l].elem;var g=-d.depth-s;s+=d.height+d.depth;var x=v([],[m,d]);x.height-=g;x.depth+=g;x.style.top=g+\"em\";f.push(x)}}var b=v([\"baseline-fix\"],[m,new a.symbolNode(\"\\u200b\")]);f.push(b);var w=v([\"vlist\"],f);w.height=Math.max(s,w.height);w.depth=Math.max(-n,w.depth);return w};var b={size1:.5,size2:.7,size3:.8,size4:.9,size5:1,size6:1.2,size7:1.44,size8:1.73,size9:2.07,size10:2.49};var w={\"\\\\qquad\":{size:\"2em\",className:\"qquad\"},\"\\\\quad\":{size:\"1em\",className:\"quad\"},\"\\\\enspace\":{size:\"0.5em\",className:\"enspace\"},\"\\\\;\":{size:\"0.277778em\",className:\"thickspace\"},\"\\\\:\":{size:\"0.22222em\",className:\"mediumspace\"},\"\\\\,\":{size:\"0.16667em\",className:\"thinspace\"},\"\\\\!\":{size:\"-0.16667em\",className:\"negativethinspace\"}};var k={mathbf:{variant:\"bold\",fontName:\"Main-Bold\"},mathrm:{variant:\"normal\",fontName:\"Main-Regular\"},textit:{variant:\"italic\",fontName:\"Main-Italic\"},mathbb:{variant:\"double-struck\",fontName:\"AMS-Regular\"},mathcal:{variant:\"script\",fontName:\"Caligraphic-Regular\"},mathfrak:{variant:\"fraktur\",fontName:\"Fraktur-Regular\"},mathscr:{variant:\"script\",fontName:\"Script-Regular\"},mathsf:{variant:\"sans-serif\",fontName:\"SansSerif-Regular\"},mathtt:{variant:\"monospace\",fontName:\"Typewriter-Regular\"}};t.exports={fontMap:k,makeSymbol:u,mathsym:p,makeSpan:v,makeFragment:g,makeVList:x,makeOrd:m,prependChildren:d,sizingMultiplier:b,spacingFunctions:w}},{\"./domTree\":15,\"./fontMetrics\":17,\"./symbols\":23,\"./utils\":25}],11:[function(e,t,r){var a=e(\"./ParseError\");var i=e(\"./Style\");var n=e(\"./buildCommon\");var s=e(\"./delimiter\");var l=e(\"./domTree\");var o=e(\"./fontMetrics\");var u=e(\"./utils\");var p=n.makeSpan;var h=function(e){return e instanceof l.span&&e.classes[0]===\"mspace\"};var c=function(e){return e&&e.classes[0]===\"mbin\"};var m=function(e,t){if(e){return u.contains([\"mbin\",\"mopen\",\"mrel\",\"mop\",\"mpunct\"],e.classes[0])}else{return t}};var f=function(e,t){if(e){return u.contains([\"mrel\",\"mclose\",\"mpunct\"],e.classes[0])}else{return t}};var v=function(e,t,r){var a=[];for(var i=0;i<e.length;i++){var s=e[i];var o=z(s,t);if(o instanceof l.documentFragment){Array.prototype.push.apply(a,o.children)}else{a.push(o)}}var u=null;for(i=0;i<a.length;i++){if(h(a[i])){u=u||[];u.push(a[i]);a.splice(i,1);i--}else if(u){if(a[i]instanceof l.symbolNode){a[i]=p([].concat(a[i].classes),[a[i]])}n.prependChildren(a[i],u);u=null}}if(u){Array.prototype.push.apply(a,u)}for(i=0;i<a.length;i++){if(c(a[i])&&(m(a[i-1],r)||f(a[i+1],r))){a[i].classes[0]=\"mord\"}}return a};var d=function(e){if(e instanceof l.documentFragment){if(e.children.length){return d(e.children[e.children.length-1])}}else{if(u.contains([\"mord\",\"mop\",\"mbin\",\"mrel\",\"mopen\",\"mclose\",\"mpunct\",\"minner\"],e.classes[0])){return e.classes[0]}}return null};var g=function(e,t){if(!e){return false}else if(e.type===\"op\"){return e.value.limits&&(t.style.size===i.DISPLAY.size||e.value.alwaysHandleSupSub)}else if(e.type===\"accent\"){return x(e.value.base)}else{return null}};var y=function(e){if(!e){return false}else if(e.type===\"ordgroup\"){if(e.value.length===1){return y(e.value[0])}else{return e}}else if(e.type===\"color\"){if(e.value.value.length===1){return y(e.value.value[0])}else{return e}}else if(e.type===\"font\"){return y(e.value.body)}else{return e}};var x=function(e){var t=y(e);return t.type===\"mathord\"||t.type===\"textord\"||t.type===\"bin\"||t.type===\"rel\"||t.type===\"inner\"||t.type===\"open\"||t.type===\"close\"||t.type===\"punct\"};var b=function(e,t){return p(t.concat([\"sizing\",\"reset-\"+e.size,\"size5\",e.style.reset(),i.TEXT.cls(),\"nulldelimiter\"]))};var w={};w.mathord=function(e,t){return n.makeOrd(e,t,\"mathord\")};w.textord=function(e,t){return n.makeOrd(e,t,\"textord\")};w.bin=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mbin\"])};w.rel=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mrel\"])};w.open=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mopen\"])};w.close=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mclose\"])};w.inner=function(e,t){return n.mathsym(e.value,e.mode,t,[\"minner\"])};w.punct=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mpunct\"])};w.ordgroup=function(e,t){return p([\"mord\",t.style.cls()],v(e.value,t.reset(),true),t)};w.text=function(e,t){var r=t.withFont(e.value.style);var a=v(e.value.body,r,true);for(var i=0;i<a.length-1;i++){if(a[i].tryCombine(a[i+1])){a.splice(i+1,1);i--}}return p([\"mord\",\"text\",r.style.cls()],a,r)};w.color=function(e,t){var r=v(e.value.value,t.withColor(e.value.color),false);return new n.makeFragment(r)};w.supsub=function(e,t){if(g(e.value.base,t)){return w[e.value.base.type](e,t)}var r=z(e.value.base,t.reset());var a;var s;var u;var h;var c=t.style;var m;if(e.value.sup){m=t.withStyle(c.sup());u=z(e.value.sup,m);a=p([c.reset(),c.sup().cls()],[u],m)}if(e.value.sub){m=t.withStyle(c.sub());h=z(e.value.sub,m);s=p([c.reset(),c.sub().cls()],[h],m)}var f;var v;if(x(e.value.base)){f=0;v=0}else{f=r.height-c.metrics.supDrop;v=r.depth+c.metrics.subDrop}var y;if(c===i.DISPLAY){y=c.metrics.sup1}else if(c.cramped){y=c.metrics.sup3}else{y=c.metrics.sup2}var b=i.TEXT.sizeMultiplier*c.sizeMultiplier;var k=.5/o.metrics.ptPerEm/b+\"em\";var S;if(!e.value.sup){v=Math.max(v,c.metrics.sub1,h.height-.8*c.metrics.xHeight);S=n.makeVList([{type:\"elem\",elem:s}],\"shift\",v,t);S.children[0].style.marginRight=k;if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+\"em\"}}else if(!e.value.sub){f=Math.max(f,y,u.depth+.25*c.metrics.xHeight);S=n.makeVList([{type:\"elem\",elem:a}],\"shift\",-f,t);S.children[0].style.marginRight=k}else{f=Math.max(f,y,u.depth+.25*c.metrics.xHeight);v=Math.max(v,c.metrics.sub2);var M=o.metrics.defaultRuleThickness;if(f-u.depth-(h.height-v)<4*M){v=4*M-(f-u.depth)+h.height;var T=.8*c.metrics.xHeight-(f-u.depth);if(T>0){f+=T;v-=T}}S=n.makeVList([{type:\"elem\",elem:s,shift:v},{type:\"elem\",elem:a,shift:-f}],\"individualShift\",null,t);if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+\"em\"}S.children[0].style.marginRight=k;S.children[1].style.marginRight=k}var A=d(r)||\"mord\";return p([A],[r,p([\"msupsub\"],[S])],t)};w.genfrac=function(e,t){var r=t.style;if(e.value.size===\"display\"){r=i.DISPLAY}else if(e.value.size===\"text\"){r=i.TEXT}var a=r.fracNum();var l=r.fracDen();var u;u=t.withStyle(a);var h=z(e.value.numer,u);var c=p([r.reset(),a.cls()],[h],u);u=t.withStyle(l);var m=z(e.value.denom,u);var f=p([r.reset(),l.cls()],[m],u);var v;if(e.value.hasBarLine){v=o.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{v=0}var d;var g;var y;if(r.size===i.DISPLAY.size){d=r.metrics.num1;if(v>0){g=3*v}else{g=7*o.metrics.defaultRuleThickness}y=r.metrics.denom1}else{if(v>0){d=r.metrics.num2;g=v}else{d=r.metrics.num3;g=3*o.metrics.defaultRuleThickness}y=r.metrics.denom2}var x;if(v===0){var w=d-h.depth-(m.height-y);if(w<g){d+=.5*(g-w);y+=.5*(g-w)}x=n.makeVList([{type:\"elem\",elem:f,shift:y},{type:\"elem\",elem:c,shift:-d}],\"individualShift\",null,t)}else{var k=r.metrics.axisHeight;if(d-h.depth-(k+.5*v)<g){d+=g-(d-h.depth-(k+.5*v))}if(k-.5*v-(m.height-y)<g){y+=g-(k-.5*v-(m.height-y))}var S=p([t.style.reset(),i.TEXT.cls(),\"frac-line\"]);S.height=v;var M=-(k-.5*v);x=n.makeVList([{type:\"elem\",elem:f,shift:y},{type:\"elem\",elem:S,shift:M},{type:\"elem\",elem:c,shift:-d}],\"individualShift\",null,t)}x.height*=r.sizeMultiplier/t.style.sizeMultiplier;x.depth*=r.sizeMultiplier/t.style.sizeMultiplier;var T;if(r.size===i.DISPLAY.size){T=r.metrics.delim1}else{T=r.metrics.delim2}var A;var N;if(e.value.leftDelim==null){A=b(t,[\"mopen\"])}else{A=s.customSizedDelim(e.value.leftDelim,T,true,t.withStyle(r),e.mode,[\"mopen\"])}if(e.value.rightDelim==null){N=b(t,[\"mclose\"])}else{N=s.customSizedDelim(e.value.rightDelim,T,true,t.withStyle(r),e.mode,[\"mclose\"])}return p([\"mord\",t.style.reset(),r.cls()],[A,p([\"mfrac\"],[x]),N],t)};var k=function(e,t){var r=e.number;if(e.unit===\"ex\"){r*=t.metrics.emPerEx}else if(e.unit===\"mu\"){r/=18}return r};w.array=function(e,t){var r;var i;var s=e.value.body.length;var l=0;var h=new Array(s);var c=t.style;var m=1/o.metrics.ptPerEm;var f=5*m;var v=12*m;var d=u.deflt(e.value.arraystretch,1);var g=d*v;var y=.7*g;var x=.3*g;var b=0;for(r=0;r<e.value.body.length;++r){var w=e.value.body[r];var S=y;var M=x;if(l<w.length){l=w.length}var T=new Array(w.length);for(i=0;i<w.length;++i){var A=z(w[i],t);if(M<A.depth){M=A.depth}if(S<A.height){S=A.height}T[i]=A}var N=0;if(e.value.rowGaps[r]){N=k(e.value.rowGaps[r].value,c);if(N>0){N+=x;if(M<N){M=N}N=0}}T.height=S;T.depth=M;b+=S;T.pos=b;b+=M+N;h[r]=T}var q=b/2+c.metrics.axisHeight;var R=e.value.cols||[];var E=[];var C;var D;for(i=0,D=0;i<l||D<R.length;++i,++D){var O=R[D]||{};var P=true;while(O.type===\"separator\"){if(!P){C=p([\"arraycolsep\"],[]);C.style.width=o.metrics.doubleRuleSep+\"em\";E.push(C)}if(O.separator===\"|\"){var F=p([\"vertical-separator\"],[]);F.style.height=b+\"em\";F.style.verticalAlign=-(b-q)+\"em\";E.push(F)}else{throw new a(\"Invalid separator type: \"+O.separator)}D++;O=R[D]||{};P=false}if(i>=l){continue}var I;if(i>0||e.value.hskipBeforeAndAfter){I=u.deflt(O.pregap,f);if(I!==0){C=p([\"arraycolsep\"],[]);C.style.width=I+\"em\";E.push(C)}}var L=[];for(r=0;r<s;++r){var B=h[r];var G=B[i];if(!G){continue}var V=B.pos-q;G.depth=B.depth;G.height=B.height;L.push({type:\"elem\",elem:G,shift:V})}L=n.makeVList(L,\"individualShift\",null,t);L=p([\"col-align-\"+(O.align||\"c\")],[L]);E.push(L);if(i<l-1||e.value.hskipBeforeAndAfter){I=u.deflt(O.postgap,f);if(I!==0){C=p([\"arraycolsep\"],[]);C.style.width=I+\"em\";E.push(C)}}}h=p([\"mtable\"],E);return p([\"mord\"],[h],t)};w.spacing=function(e,t){if(e.value===\"\\\\ \"||e.value===\"\\\\space\"||e.value===\" \"||e.value===\"~\"){if(e.mode===\"text\"){return n.makeOrd(e,t,\"textord\")}else{return p([\"mspace\"],[n.mathsym(e.value,e.mode,t)],t)}}else{return p([\"mspace\",n.spacingFunctions[e.value].className],[],t)}};w.llap=function(e,t){var r=p([\"inner\"],[z(e.value.body,t.reset())]);var a=p([\"fix\"],[]);return p([\"mord\",\"llap\",t.style.cls()],[r,a],t)};w.rlap=function(e,t){var r=p([\"inner\"],[z(e.value.body,t.reset())]);var a=p([\"fix\"],[]);return p([\"mord\",\"rlap\",t.style.cls()],[r,a],t)};w.op=function(e,t){var r;var a;var s=false;if(e.type===\"supsub\"){r=e.value.sup;a=e.value.sub;e=e.value.base;s=true}var l=t.style;var h=[\"\\\\smallint\"];var c=false;if(l.size===i.DISPLAY.size&&e.value.symbol&&!u.contains(h,e.value.body)){c=true}var m;var f=0;var d=0;if(e.value.symbol){var g=c?\"Size2-Regular\":\"Size1-Regular\";m=n.makeSymbol(e.value.body,g,\"math\",t,[\"mop\",\"op-symbol\",c?\"large-op\":\"small-op\"]);f=(m.height-m.depth)/2-l.metrics.axisHeight*l.sizeMultiplier;d=m.italic}else if(e.value.value){var y=v(e.value.value,t,true);m=p([\"mop\"],y,t)}else{var x=[];for(var b=1;b<e.value.body.length;b++){x.push(n.mathsym(e.value.body[b],e.mode))}m=p([\"mop\"],x,t)}if(s){m=p([],[m]);var w;var k;var S;var M;var T;if(r){T=t.withStyle(l.sup());var A=z(r,T);w=p([l.reset(),l.sup().cls()],[A],T);k=Math.max(o.metrics.bigOpSpacing1,o.metrics.bigOpSpacing3-A.depth)}if(a){T=t.withStyle(l.sub());var N=z(a,T);S=p([l.reset(),l.sub().cls()],[N],T);M=Math.max(o.metrics.bigOpSpacing2,o.metrics.bigOpSpacing4-N.height)}var q;var R;var E;if(!r){R=m.height-f;q=n.makeVList([{type:\"kern\",size:o.metrics.bigOpSpacing5},{type:\"elem\",elem:S},{type:\"kern\",size:M},{type:\"elem\",elem:m}],\"top\",R,t);q.children[0].style.marginLeft=-d+\"em\"}else if(!a){E=m.depth+f;q=n.makeVList([{type:\"elem\",elem:m},{type:\"kern\",size:k},{type:\"elem\",elem:w},{type:\"kern\",size:o.metrics.bigOpSpacing5}],\"bottom\",E,t);q.children[1].style.marginLeft=d+\"em\"}else if(!r&&!a){return m}else{E=o.metrics.bigOpSpacing5+S.height+S.depth+M+m.depth+f;\nq=n.makeVList([{type:\"kern\",size:o.metrics.bigOpSpacing5},{type:\"elem\",elem:S},{type:\"kern\",size:M},{type:\"elem\",elem:m},{type:\"kern\",size:k},{type:\"elem\",elem:w},{type:\"kern\",size:o.metrics.bigOpSpacing5}],\"bottom\",E,t);q.children[0].style.marginLeft=-d+\"em\";q.children[2].style.marginLeft=d+\"em\"}return p([\"mop\",\"op-limits\"],[q],t)}else{if(e.value.symbol){m.style.top=f+\"em\"}return m}};w.mod=function(e,t){var r=[];if(e.value.modType===\"bmod\"){if(!t.style.isTight()){r.push(p([\"mspace\",\"negativemediumspace\"],[],t))}r.push(p([\"mspace\",\"thickspace\"],[],t))}else if(t.style.size===i.DISPLAY.size){r.push(p([\"mspace\",\"quad\"],[],t))}else if(e.value.modType===\"mod\"){r.push(p([\"mspace\",\"twelvemuspace\"],[],t))}else{r.push(p([\"mspace\",\"eightmuspace\"],[],t))}if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(n.mathsym(\"(\",e.mode))}if(e.value.modType!==\"pod\"){var a=[n.mathsym(\"m\",e.mode),n.mathsym(\"o\",e.mode),n.mathsym(\"d\",e.mode)];if(e.value.modType===\"bmod\"){r.push(p([\"mbin\"],a,t));r.push(p([\"mspace\",\"thickspace\"],[],t));if(!t.style.isTight()){r.push(p([\"mspace\",\"negativemediumspace\"],[],t))}}else{Array.prototype.push.apply(r,a);r.push(p([\"mspace\",\"sixmuspace\"],[],t))}}if(e.value.value){Array.prototype.push.apply(r,v(e.value.value,t,false))}if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(n.mathsym(\")\",e.mode))}return n.makeFragment(r)};w.katex=function(e,t){var r=p([\"k\"],[n.mathsym(\"K\",e.mode)],t);var a=p([\"a\"],[n.mathsym(\"A\",e.mode)],t);a.height=(a.height+.2)*.75;a.depth=(a.height-.2)*.75;var i=p([\"t\"],[n.mathsym(\"T\",e.mode)],t);var s=p([\"e\"],[n.mathsym(\"E\",e.mode)],t);s.height=s.height-.2155;s.depth=s.depth+.2155;var l=p([\"x\"],[n.mathsym(\"X\",e.mode)],t);return p([\"mord\",\"katex-logo\"],[r,a,i,s,l],t)};w.overline=function(e,t){var r=t.style;var a=z(e.value.body,t.withStyle(r.cramp()));var s=o.metrics.defaultRuleThickness/r.sizeMultiplier;var l=p([r.reset(),i.TEXT.cls(),\"overline-line\"]);l.height=s;l.maxFontSize=1;var u=n.makeVList([{type:\"elem\",elem:a},{type:\"kern\",size:3*s},{type:\"elem\",elem:l},{type:\"kern\",size:s}],\"firstBaseline\",null,t);return p([\"mord\",\"overline\"],[u],t)};w.underline=function(e,t){var r=t.style;var a=z(e.value.body,t);var s=o.metrics.defaultRuleThickness/r.sizeMultiplier;var l=p([r.reset(),i.TEXT.cls(),\"underline-line\"]);l.height=s;l.maxFontSize=1;var u=n.makeVList([{type:\"kern\",size:s},{type:\"elem\",elem:l},{type:\"kern\",size:3*s},{type:\"elem\",elem:a}],\"top\",a.height,t);return p([\"mord\",\"underline\"],[u],t)};w.sqrt=function(e,t){var r=t.style;var a=z(e.value.body,t.withStyle(r.cramp()));var l=o.metrics.defaultRuleThickness/r.sizeMultiplier;var u=p([r.reset(),i.TEXT.cls(),\"sqrt-line\"],[],t);u.height=l;u.maxFontSize=1;var h=l;if(r.id<i.TEXT.id){h=r.metrics.xHeight}var c=l+h/4;var m=(a.height+a.depth)*r.sizeMultiplier;var f=m+c+l;var v=p([\"sqrt-sign\"],[s.customSizedDelim(\"\\\\surd\",f,false,t,e.mode)],t);var d=v.height+v.depth-l;if(d>a.height+a.depth+c){c=(c+d-a.height-a.depth)/2}var g=-(a.height+c+l)+v.height;v.style.top=g+\"em\";v.height-=g;v.depth+=g;var y;if(a.height===0&&a.depth===0){y=p()}else{y=n.makeVList([{type:\"elem\",elem:a},{type:\"kern\",size:c},{type:\"elem\",elem:u},{type:\"kern\",size:l}],\"firstBaseline\",null,t)}if(!e.value.index){return p([\"mord\",\"sqrt\"],[v,y],t)}else{var x=t.withStyle(i.SCRIPTSCRIPT);var b=z(e.value.index,x);var w=p([r.reset(),i.SCRIPTSCRIPT.cls()],[b],x);var k=Math.max(v.height,y.height);var S=Math.max(v.depth,y.depth);var M=.6*(k-S);var T=n.makeVList([{type:\"elem\",elem:w}],\"shift\",-M,t);var A=p([\"root\"],[T]);return p([\"mord\",\"sqrt\"],[A,v,y],t)}};w.sizing=function(e,t){var r=v(e.value.value,t.withSize(e.value.size),false);var a=t.style;var i=n.sizingMultiplier[e.value.size];i=i*a.sizeMultiplier;for(var s=0;s<r.length;s++){var l=u.indexOf(r[s].classes,\"sizing\");if(l<0){r[s].classes.push(\"sizing\",\"reset-\"+t.size,e.value.size,a.cls());r[s].maxFontSize=i}else if(r[s].classes[l+1]===\"reset-\"+e.value.size){r[s].classes[l+1]=\"reset-\"+t.size}}return n.makeFragment(r)};w.styling=function(e,t){var r={display:i.DISPLAY,text:i.TEXT,script:i.SCRIPT,scriptscript:i.SCRIPTSCRIPT};var a=r[e.value.style];var s=t.withStyle(a);var l=v(e.value.value,s,false);for(var o=0;o<l.length;o++){var p=u.indexOf(l[o].classes,a.reset());if(p<0){l[o].classes.push(t.style.reset(),a.cls())}else{l[o].classes[p]=t.style.reset()}}return new n.makeFragment(l)};w.font=function(e,t){var r=e.value.font;return z(e.value.body,t.withFont(r))};w.delimsizing=function(e,t){var r=e.value.value;if(r===\".\"){return p([e.value.mclass])}return s.sizedDelim(r,e.value.size,t,e.mode,[e.value.mclass])};w.leftright=function(e,t){var r=v(e.value.body,t.reset(),true);var a=0;var i=0;var n=false;for(var l=0;l<r.length;l++){if(r[l].isMiddle){n=true}else{a=Math.max(r[l].height,a);i=Math.max(r[l].depth,i)}}var o=t.style;a*=o.sizeMultiplier;i*=o.sizeMultiplier;var u;if(e.value.left===\".\"){u=b(t,[\"mopen\"])}else{u=s.leftRightDelim(e.value.left,a,i,t,e.mode,[\"mopen\"])}r.unshift(u);if(n){for(l=1;l<r.length;l++){if(r[l].isMiddle){r[l]=s.leftRightDelim(r[l].isMiddle.value,a,i,r[l].isMiddle.options,e.mode,[])}}}var h;if(e.value.right===\".\"){h=b(t,[\"mclose\"])}else{h=s.leftRightDelim(e.value.right,a,i,t,e.mode,[\"mclose\"])}r.push(h);return p([\"minner\",o.cls()],r,t)};w.middle=function(e,t){var r;if(e.value.value===\".\"){r=b(t,[])}else{r=s.sizedDelim(e.value.value,1,t,e.mode,[]);r.isMiddle={value:e.value.value,options:t}}return r};w.rule=function(e,t){var r=p([\"mord\",\"rule\"],[],t);var a=t.style;var i=0;if(e.value.shift){i=k(e.value.shift,a)}var n=k(e.value.width,a);var s=k(e.value.height,a);i/=a.sizeMultiplier;n/=a.sizeMultiplier;s/=a.sizeMultiplier;r.style.borderRightWidth=n+\"em\";r.style.borderTopWidth=s+\"em\";r.style.bottom=i+\"em\";r.width=n;r.height=s+i;r.depth=-i;return r};w.kern=function(e,t){var r=p([\"mord\",\"rule\"],[],t);var a=t.style;var i=0;if(e.value.dimension){i=k(e.value.dimension,a)}i/=a.sizeMultiplier;r.style.marginLeft=i+\"em\";return r};w.accent=function(e,t){var r=e.value.base;var a=t.style;var i;if(e.type===\"supsub\"){var s=e;e=s.value.base;r=e.value.base;s.value.base=r;i=z(s,t.reset())}var l=z(r,t.withStyle(a.cramp()));var o;if(x(r)){var u=y(r);var h=z(u,t.withStyle(a.cramp()));o=h.skew}else{o=0}var c=Math.min(l.height,a.metrics.xHeight);var m=n.makeSymbol(e.value.accent,\"Main-Regular\",\"math\",t);m.italic=0;var f=e.value.accent===\"\\\\vec\"?\"accent-vec\":null;var v=p([\"accent-body\",f],[p([],[m])]);v=n.makeVList([{type:\"elem\",elem:l},{type:\"kern\",size:-c},{type:\"elem\",elem:v}],\"firstBaseline\",null,t);v.children[1].style.marginLeft=2*o+\"em\";var d=p([\"mord\",\"accent\"],[v],t);if(i){i.children[0]=d;i.height=Math.max(d.height,i.height);i.classes[0]=\"mord\";return i}else{return d}};w.phantom=function(e,t){var r=v(e.value.value,t.withPhantom(),false);return new n.makeFragment(r)};w.mclass=function(e,t){var r=v(e.value.value,t,true);return p([e.value.mclass],r,t)};var z=function(e,t){if(!e){return p()}if(w[e.type]){var r=w[e.type](e,t);var i;if(t.style!==t.parentStyle){i=t.style.sizeMultiplier/t.parentStyle.sizeMultiplier;r.height*=i;r.depth*=i}if(t.size!==t.parentSize){i=n.sizingMultiplier[t.size]/n.sizingMultiplier[t.parentSize];r.height*=i;r.depth*=i}return r}else{throw new a(\"Got group of unknown type: '\"+e.type+\"'\")}};var S=function(e,t){e=JSON.parse(JSON.stringify(e));var r=v(e,t,true);var a=p([\"base\",t.style.cls()],r,t);var i=p([\"strut\"]);var n=p([\"strut\",\"bottom\"]);i.style.height=a.height+\"em\";n.style.height=a.height+a.depth+\"em\";n.style.verticalAlign=-a.depth+\"em\";var s=p([\"katex-html\"],[i,n,a]);s.setAttribute(\"aria-hidden\",\"true\");return s};t.exports=S},{\"./ParseError\":6,\"./Style\":9,\"./buildCommon\":10,\"./delimiter\":14,\"./domTree\":15,\"./fontMetrics\":17,\"./utils\":25}],12:[function(e,t,r){var a=e(\"./buildCommon\");var i=e(\"./fontMetrics\");var n=e(\"./mathMLTree\");var s=e(\"./ParseError\");var l=e(\"./symbols\");var o=e(\"./utils\");var u=a.makeSpan;var p=a.fontMap;var h=function(e,t){if(l[t][e]&&l[t][e].replace){e=l[t][e].replace}return new n.TextNode(e)};var c=function(e,t){var r=t.font;if(!r){return null}var a=e.mode;if(r===\"mathit\"){return\"italic\"}var n=e.value;if(o.contains([\"\\\\imath\",\"\\\\jmath\"],n)){return null}if(l[a][n]&&l[a][n].replace){n=l[a][n].replace}var s=p[r].fontName;if(i.getCharacterMetrics(n,s)){return p[t.font].variant}return null};var m={};m.mathord=function(e,t){var r=new n.MathNode(\"mi\",[h(e.value,e.mode)]);var a=c(e,t);if(a){r.setAttribute(\"mathvariant\",a)}return r};m.textord=function(e,t){var r=h(e.value,e.mode);var a=c(e,t)||\"normal\";var i;if(/[0-9]/.test(e.value)){i=new n.MathNode(\"mn\",[r]);if(t.font){i.setAttribute(\"mathvariant\",a)}}else{i=new n.MathNode(\"mi\",[r]);i.setAttribute(\"mathvariant\",a)}return i};m.bin=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.rel=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.open=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.close=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.inner=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.punct=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);t.setAttribute(\"separator\",\"true\");return t};m.ordgroup=function(e,t){var r=f(e.value,t);var a=new n.MathNode(\"mrow\",r);return a};m.text=function(e,t){var r=f(e.value.body,t);var a=new n.MathNode(\"mtext\",r);return a};m.color=function(e,t){var r=f(e.value.value,t);var a=new n.MathNode(\"mstyle\",r);a.setAttribute(\"mathcolor\",e.value.color);return a};m.supsub=function(e,t){var r=[v(e.value.base,t)];if(e.value.sub){r.push(v(e.value.sub,t))}if(e.value.sup){r.push(v(e.value.sup,t))}var a;if(!e.value.sub){a=\"msup\"}else if(!e.value.sup){a=\"msub\"}else{a=\"msubsup\"}var i=new n.MathNode(a,r);return i};m.genfrac=function(e,t){var r=new n.MathNode(\"mfrac\",[v(e.value.numer,t),v(e.value.denom,t)]);if(!e.value.hasBarLine){r.setAttribute(\"linethickness\",\"0px\")}if(e.value.leftDelim!=null||e.value.rightDelim!=null){var a=[];if(e.value.leftDelim!=null){var i=new n.MathNode(\"mo\",[new n.TextNode(e.value.leftDelim)]);i.setAttribute(\"fence\",\"true\");a.push(i)}a.push(r);if(e.value.rightDelim!=null){var s=new n.MathNode(\"mo\",[new n.TextNode(e.value.rightDelim)]);s.setAttribute(\"fence\",\"true\");a.push(s)}var l=new n.MathNode(\"mrow\",a);return l}return r};m.array=function(e,t){return new n.MathNode(\"mtable\",e.value.body.map(function(e){return new n.MathNode(\"mtr\",e.map(function(e){return new n.MathNode(\"mtd\",[v(e,t)])}))}))};m.sqrt=function(e,t){var r;if(e.value.index){r=new n.MathNode(\"mroot\",[v(e.value.body,t),v(e.value.index,t)])}else{r=new n.MathNode(\"msqrt\",[v(e.value.body,t)])}return r};m.leftright=function(e,t){var r=f(e.value.body,t);if(e.value.left!==\".\"){var a=new n.MathNode(\"mo\",[h(e.value.left,e.mode)]);a.setAttribute(\"fence\",\"true\");r.unshift(a)}if(e.value.right!==\".\"){var i=new n.MathNode(\"mo\",[h(e.value.right,e.mode)]);i.setAttribute(\"fence\",\"true\");r.push(i)}var s=new n.MathNode(\"mrow\",r);return s};m.middle=function(e,t){var r=new n.MathNode(\"mo\",[h(e.value.middle,e.mode)]);r.setAttribute(\"fence\",\"true\");return r};m.accent=function(e,t){var r=new n.MathNode(\"mo\",[h(e.value.accent,e.mode)]);var a=new n.MathNode(\"mover\",[v(e.value.base,t),r]);a.setAttribute(\"accent\",\"true\");return a};m.spacing=function(e){var t;if(e.value===\"\\\\ \"||e.value===\"\\\\space\"||e.value===\" \"||e.value===\"~\"){t=new n.MathNode(\"mtext\",[new n.TextNode(\"\\xa0\")])}else{t=new n.MathNode(\"mspace\");t.setAttribute(\"width\",a.spacingFunctions[e.value].size)}return t};m.op=function(e,t){var r;if(e.value.symbol){r=new n.MathNode(\"mo\",[h(e.value.body,e.mode)])}else if(e.value.value){r=new n.MathNode(\"mo\",f(e.value.value,t))}else{r=new n.MathNode(\"mi\",[new n.TextNode(e.value.body.slice(1))])}return r};m.mod=function(e,t){var r=[];if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(new n.MathNode(\"mo\",[h(\"(\",e.mode)]))}if(e.value.modType!==\"pod\"){r.push(new n.MathNode(\"mo\",[h(\"mod\",e.mode)]))}if(e.value.value){var a=new n.MathNode(\"mspace\");a.setAttribute(\"width\",\"0.333333em\");r.push(a);r=r.concat(f(e.value.value,t))}if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(new n.MathNode(\"mo\",[h(\")\",e.mode)]))}return new n.MathNode(\"mo\",r)};m.katex=function(e){var t=new n.MathNode(\"mtext\",[new n.TextNode(\"KaTeX\")]);return t};m.font=function(e,t){var r=e.value.font;return v(e.value.body,t.withFont(r))};m.delimsizing=function(e){var t=[];if(e.value.value!==\".\"){t.push(h(e.value.value,e.mode))}var r=new n.MathNode(\"mo\",t);if(e.value.mclass===\"mopen\"||e.value.mclass===\"mclose\"){r.setAttribute(\"fence\",\"true\")}else{r.setAttribute(\"fence\",\"false\")}return r};m.styling=function(e,t){var r=f(e.value.value,t);var a=new n.MathNode(\"mstyle\",r);var i={display:[\"0\",\"true\"],text:[\"0\",\"false\"],script:[\"1\",\"false\"],scriptscript:[\"2\",\"false\"]};var s=i[e.value.style];a.setAttribute(\"scriptlevel\",s[0]);a.setAttribute(\"displaystyle\",s[1]);return a};m.sizing=function(e,t){var r=f(e.value.value,t);var i=new n.MathNode(\"mstyle\",r);i.setAttribute(\"mathsize\",a.sizingMultiplier[e.value.size]+\"em\");return i};m.overline=function(e,t){var r=new n.MathNode(\"mo\",[new n.TextNode(\"\\u203e\")]);r.setAttribute(\"stretchy\",\"true\");var a=new n.MathNode(\"mover\",[v(e.value.body,t),r]);a.setAttribute(\"accent\",\"true\");return a};m.underline=function(e,t){var r=new n.MathNode(\"mo\",[new n.TextNode(\"\\u203e\")]);r.setAttribute(\"stretchy\",\"true\");var a=new n.MathNode(\"munder\",[v(e.value.body,t),r]);a.setAttribute(\"accentunder\",\"true\");return a};m.rule=function(e){var t=new n.MathNode(\"mrow\");return t};m.kern=function(e){var t=new n.MathNode(\"mrow\");return t};m.llap=function(e,t){var r=new n.MathNode(\"mpadded\",[v(e.value.body,t)]);r.setAttribute(\"lspace\",\"-1width\");r.setAttribute(\"width\",\"0px\");return r};m.rlap=function(e,t){var r=new n.MathNode(\"mpadded\",[v(e.value.body,t)]);r.setAttribute(\"width\",\"0px\");return r};m.phantom=function(e,t){var r=f(e.value.value,t);return new n.MathNode(\"mphantom\",r)};m.mclass=function(e,t){var r=f(e.value.value,t);return new n.MathNode(\"mstyle\",r)};var f=function(e,t){var r=[];for(var a=0;a<e.length;a++){var i=e[a];r.push(v(i,t))}return r};var v=function(e,t){if(!e){return new n.MathNode(\"mrow\")}if(m[e.type]){return m[e.type](e,t)}else{throw new s(\"Got group of unknown type: '\"+e.type+\"'\")}};var d=function(e,t,r){var a=f(e,r);var i=new n.MathNode(\"mrow\",a);var s=new n.MathNode(\"annotation\",[new n.TextNode(t)]);s.setAttribute(\"encoding\",\"application/x-tex\");var l=new n.MathNode(\"semantics\",[i,s]);var o=new n.MathNode(\"math\",[l]);return u([\"katex-mathml\"],[o])};t.exports=d},{\"./ParseError\":6,\"./buildCommon\":10,\"./fontMetrics\":17,\"./mathMLTree\":20,\"./symbols\":23,\"./utils\":25}],13:[function(e,t,r){var a=e(\"./buildHTML\");var i=e(\"./buildMathML\");var n=e(\"./buildCommon\");var s=e(\"./Options\");var l=e(\"./Settings\");var o=e(\"./Style\");var u=n.makeSpan;var p=function(e,t,r){r=r||new l({});var n=o.TEXT;if(r.displayMode){n=o.DISPLAY}var p=new s({style:n,size:\"size5\"});var h=i(e,t,p);var c=a(e,p);var m=u([\"katex\"],[h,c]);if(r.displayMode){return u([\"katex-display\"],[m])}else{return m}};t.exports=p},{\"./Options\":5,\"./Settings\":8,\"./Style\":9,\"./buildCommon\":10,\"./buildHTML\":11,\"./buildMathML\":12}],14:[function(e,t,r){var a=e(\"./ParseError\");var i=e(\"./Style\");var n=e(\"./buildCommon\");var s=e(\"./fontMetrics\");var l=e(\"./symbols\");var o=e(\"./utils\");var u=n.makeSpan;var p=function(e,t){if(l.math[e]&&l.math[e].replace){return s.getCharacterMetrics(l.math[e].replace,t)}else{return s.getCharacterMetrics(e,t)}};var h=function(e,t,r,a){return n.makeSymbol(e,\"Size\"+t+\"-Regular\",r,a)};var c=function(e,t,r,a){a=a||[];var i=u(a.concat([\"style-wrap\",r.style.reset(),t.cls()]),[e],r);var n=t.sizeMultiplier/r.style.sizeMultiplier;i.height*=n;i.depth*=n;i.maxFontSize=t.sizeMultiplier;return i};var m=function(e,t,r,a,i,s){var l=n.makeSymbol(e,\"Main-Regular\",i,a);var o=c(l,t,a,s);if(r){var u=(1-a.style.sizeMultiplier/t.sizeMultiplier)*a.style.metrics.axisHeight;o.style.top=u+\"em\";o.height-=u;o.depth+=u}return o};var f=function(e,t,r,a,n,s){var l=h(e,t,n,a);var o=c(u([\"delimsizing\",\"size\"+t],[l],a),i.TEXT,a,s);if(r){var p=(1-a.style.sizeMultiplier)*a.style.metrics.axisHeight;o.style.top=p+\"em\";o.height-=p;o.depth+=p}return o};var v=function(e,t,r){var a;if(t===\"Size1-Regular\"){a=\"delim-size1\"}else if(t===\"Size4-Regular\"){a=\"delim-size4\"}var i=u([\"delimsizinginner\",a],[u([],[n.makeSymbol(e,t,r)])]);return{type:\"elem\",elem:i}};var d=function(e,t,r,a,s,l){var o;var h;var m;var f;o=m=f=e;h=null;var d=\"Size1-Regular\";if(e===\"\\\\uparrow\"){m=f=\"\\u23d0\"}else if(e===\"\\\\Uparrow\"){m=f=\"\\u2016\"}else if(e===\"\\\\downarrow\"){o=m=\"\\u23d0\"}else if(e===\"\\\\Downarrow\"){o=m=\"\\u2016\"}else if(e===\"\\\\updownarrow\"){o=\"\\\\uparrow\";m=\"\\u23d0\";f=\"\\\\downarrow\"}else if(e===\"\\\\Updownarrow\"){o=\"\\\\Uparrow\";m=\"\\u2016\";f=\"\\\\Downarrow\"}else if(e===\"[\"||e===\"\\\\lbrack\"){o=\"\\u23a1\";m=\"\\u23a2\";f=\"\\u23a3\";d=\"Size4-Regular\"}else if(e===\"]\"||e===\"\\\\rbrack\"){o=\"\\u23a4\";m=\"\\u23a5\";f=\"\\u23a6\";d=\"Size4-Regular\"}else if(e===\"\\\\lfloor\"){m=o=\"\\u23a2\";f=\"\\u23a3\";d=\"Size4-Regular\"}else if(e===\"\\\\lceil\"){o=\"\\u23a1\";m=f=\"\\u23a2\";d=\"Size4-Regular\"}else if(e===\"\\\\rfloor\"){m=o=\"\\u23a5\";f=\"\\u23a6\";d=\"Size4-Regular\"}else if(e===\"\\\\rceil\"){o=\"\\u23a4\";m=f=\"\\u23a5\";d=\"Size4-Regular\"}else if(e===\"(\"){o=\"\\u239b\";m=\"\\u239c\";f=\"\\u239d\";d=\"Size4-Regular\"}else if(e===\")\"){o=\"\\u239e\";m=\"\\u239f\";f=\"\\u23a0\";d=\"Size4-Regular\"}else if(e===\"\\\\{\"||e===\"\\\\lbrace\"){o=\"\\u23a7\";h=\"\\u23a8\";f=\"\\u23a9\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\}\"||e===\"\\\\rbrace\"){o=\"\\u23ab\";h=\"\\u23ac\";f=\"\\u23ad\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\lgroup\"){o=\"\\u23a7\";f=\"\\u23a9\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\rgroup\"){o=\"\\u23ab\";f=\"\\u23ad\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\lmoustache\"){o=\"\\u23a7\";f=\"\\u23ad\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\rmoustache\"){o=\"\\u23ab\";f=\"\\u23a9\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\surd\"){o=\"\\ue001\";f=\"\\u23b7\";m=\"\\ue000\";d=\"Size4-Regular\"}var g=p(o,d);var y=g.height+g.depth;var x=p(m,d);var b=x.height+x.depth;var w=p(f,d);var k=w.height+w.depth;var z=0;var S=1;if(h!==null){var M=p(h,d);z=M.height+M.depth;S=2}var T=y+k+z;var A=Math.ceil((t-T)/(S*b));var N=T+A*S*b;var q=a.style.metrics.axisHeight;if(r){q*=a.style.sizeMultiplier}var R=N/2-q;var E=[];E.push(v(f,d,s));var C;if(h===null){for(C=0;C<A;C++){E.push(v(m,d,s))}}else{for(C=0;C<A;C++){E.push(v(m,d,s))}E.push(v(h,d,s));for(C=0;C<A;C++){E.push(v(m,d,s))}}E.push(v(o,d,s));var D=n.makeVList(E,\"bottom\",R,a);return c(u([\"delimsizing\",\"mult\"],[D],a),i.TEXT,a,l)};var g=[\"(\",\")\",\"[\",\"\\\\lbrack\",\"]\",\"\\\\rbrack\",\"\\\\{\",\"\\\\lbrace\",\"\\\\}\",\"\\\\rbrace\",\"\\\\lfloor\",\"\\\\rfloor\",\"\\\\lceil\",\"\\\\rceil\",\"\\\\surd\"];var y=[\"\\\\uparrow\",\"\\\\downarrow\",\"\\\\updownarrow\",\"\\\\Uparrow\",\"\\\\Downarrow\",\"\\\\Updownarrow\",\"|\",\"\\\\|\",\"\\\\vert\",\"\\\\Vert\",\"\\\\lvert\",\"\\\\rvert\",\"\\\\lVert\",\"\\\\rVert\",\"\\\\lgroup\",\"\\\\rgroup\",\"\\\\lmoustache\",\"\\\\rmoustache\"];var x=[\"<\",\">\",\"\\\\langle\",\"\\\\rangle\",\"/\",\"\\\\backslash\",\"\\\\lt\",\"\\\\gt\"];var b=[0,1.2,1.8,2.4,3];var w=function(e,t,r,i,n){if(e===\"<\"||e===\"\\\\lt\"){e=\"\\\\langle\"}else if(e===\">\"||e===\"\\\\gt\"){e=\"\\\\rangle\"}if(o.contains(g,e)||o.contains(x,e)){return f(e,t,false,r,i,n)}else if(o.contains(y,e)){return d(e,b[t],false,r,i,n)}else{throw new a(\"Illegal delimiter: '\"+e+\"'\")}};var k=[{type:\"small\",style:i.SCRIPTSCRIPT},{type:\"small\",style:i.SCRIPT},{type:\"small\",style:i.TEXT},{type:\"large\",size:1},{type:\"large\",size:2},{type:\"large\",size:3},{type:\"large\",size:4}];var z=[{type:\"small\",style:i.SCRIPTSCRIPT},{type:\"small\",style:i.SCRIPT},{type:\"small\",style:i.TEXT},{type:\"stack\"}];var S=[{type:\"small\",style:i.SCRIPTSCRIPT},{type:\"small\",style:i.SCRIPT},{type:\"small\",style:i.TEXT},{type:\"large\",size:1},{type:\"large\",size:2},{type:\"large\",size:3},{type:\"large\",size:4},{type:\"stack\"}];var M=function(e){if(e.type===\"small\"){return\"Main-Regular\"}else if(e.type===\"large\"){return\"Size\"+e.size+\"-Regular\"}else if(e.type===\"stack\"){return\"Size4-Regular\"}};var T=function(e,t,r,a){var i=Math.min(2,3-a.style.size);for(var n=i;n<r.length;n++){if(r[n].type===\"stack\"){break}var s=p(e,M(r[n]));var l=s.height+s.depth;if(r[n].type===\"small\"){l*=r[n].style.sizeMultiplier}if(l>t){return r[n]}}return r[r.length-1]};var A=function(e,t,r,a,i,n){if(e===\"<\"||e===\"\\\\lt\"){e=\"\\\\langle\"}else if(e===\">\"||e===\"\\\\gt\"){e=\"\\\\rangle\"}var s;if(o.contains(x,e)){s=k}else if(o.contains(g,e)){s=S}else{s=z}var l=T(e,t,s,a);if(l.type===\"small\"){return m(e,l.style,r,a,i,n)}else if(l.type===\"large\"){return f(e,l.size,r,a,i,n)}else if(l.type===\"stack\"){return d(e,t,r,a,i,n)}};var N=function(e,t,r,a,i,n){var l=a.style.metrics.axisHeight*a.style.sizeMultiplier;var o=901;var u=5/s.metrics.ptPerEm;var p=Math.max(t-l,r+l);var h=Math.max(p/500*o,2*p-u);return A(e,h,true,a,i,n)};t.exports={sizedDelim:w,customSizedDelim:A,leftRightDelim:N}},{\"./ParseError\":6,\"./Style\":9,\"./buildCommon\":10,\"./fontMetrics\":17,\"./symbols\":23,\"./utils\":25}],15:[function(e,t,r){var a=e(\"./unicodeRegexes\");var i=e(\"./utils\");var n=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(\" \")};function s(e,t,r){this.classes=e||[];this.children=t||[];this.height=0;this.depth=0;this.maxFontSize=0;this.style={};this.attributes={};if(r){if(r.style.isTight()){this.classes.push(\"mtight\")}if(r.getColor()){this.style.color=r.getColor()}}}s.prototype.setAttribute=function(e,t){this.attributes[e]=t};s.prototype.tryCombine=function(e){return false};s.prototype.toNode=function(){var e=document.createElement(\"span\");e.className=n(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){e.setAttribute(r,this.attributes[r])}}for(var a=0;a<this.children.length;a++){e.appendChild(this.children[a].toNode())}return e};s.prototype.toMarkup=function(){var e=\"<span\";if(this.classes.length){e+=' class=\"';e+=i.escape(n(this.classes));e+='\"'}var t=\"\";for(var r in this.style){if(this.style.hasOwnProperty(r)){t+=i.hyphenate(r)+\":\"+this.style[r]+\";\"}}if(t){e+=' style=\"'+i.escape(t)+'\"'}for(var a in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,a)){e+=\" \"+a+'=\"';e+=i.escape(this.attributes[a]);e+='\"'}}e+=\">\";for(var s=0;s<this.children.length;s++){e+=this.children[s].toMarkup()}e+=\"</span>\";return e};function l(e){this.children=e||[];this.height=0;this.depth=0;this.maxFontSize=0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t<this.children.length;t++){e.appendChild(this.children[t].toNode())}return e};l.prototype.toMarkup=function(){var e=\"\";for(var t=0;t<this.children.length;t++){e+=this.children[t].toMarkup()}return e};var o={\"\\xee\":\"\\u0131\\u0302\",\"\\xef\":\"\\u0131\\u0308\",\"\\xed\":\"\\u0131\\u0301\",\"\\xec\":\"\\u0131\\u0300\"};function u(e,t,r,i,n,s,l){this.value=e||\"\";this.height=t||0;this.depth=r||0;this.italic=i||0;this.skew=n||0;this.classes=s||[];this.style=l||{};this.maxFontSize=0;if(a.cjkRegex.test(e)){if(a.hangulRegex.test(e)){this.classes.push(\"hangul_fallback\")}else{this.classes.push(\"cjk_fallback\")}}if(/[\\xee\\xef\\xed\\xec]/.test(this.value)){this.value=o[this.value]}}u.prototype.tryCombine=function(e){if(!e||!(e instanceof u)||this.italic>0||n(this.classes)!==n(e.classes)||this.skew!==e.skew||this.maxFontSize!==e.maxFontSize){return false}for(var t in this.style){if(this.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}for(t in e.style){if(e.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}this.value+=e.value;this.height=Math.max(this.height,e.height);this.depth=Math.max(this.depth,e.depth);this.italic=e.italic;return true};u.prototype.toNode=function(){var e=document.createTextNode(this.value);var t=null;if(this.italic>0){t=document.createElement(\"span\");t.style.marginRight=this.italic+\"em\"}if(this.classes.length>0){t=t||document.createElement(\"span\");t.className=n(this.classes)}for(var r in this.style){if(this.style.hasOwnProperty(r)){t=t||document.createElement(\"span\");t.style[r]=this.style[r]}}if(t){t.appendChild(e);return t}else{return e}};u.prototype.toMarkup=function(){var e=false;var t=\"<span\";if(this.classes.length){e=true;t+=' class=\"';t+=i.escape(n(this.classes));t+='\"'}var r=\"\";if(this.italic>0){r+=\"margin-right:\"+this.italic+\"em;\"}for(var a in this.style){if(this.style.hasOwnProperty(a)){r+=i.hyphenate(a)+\":\"+this.style[a]+\";\"}}if(r){e=true;t+=' style=\"'+i.escape(r)+'\"'}var s=i.escape(this.value);if(e){t+=\">\";t+=s;t+=\"</span>\";return t}else{return s}};t.exports={span:s,documentFragment:l,symbolNode:u}},{\"./unicodeRegexes\":24,\"./utils\":25}],16:[function(e,t,r){var a=e(\"./parseData\");var i=e(\"./ParseError\");var n=e(\"./Style\");var s=a.ParseNode;function l(e,t){var r=[];var a=[r];var n=[];while(true){var l=e.parseExpression(false,null);r.push(new s(\"ordgroup\",l,e.mode));var o=e.nextToken.text;if(o===\"&\"){e.consume()}else if(o===\"\\\\end\"){break}else if(o===\"\\\\\\\\\"||o===\"\\\\cr\"){var u=e.parseFunction();n.push(u.value.size);r=[];a.push(r)}else{throw new i(\"Expected & or \\\\\\\\ or \\\\end\",e.nextToken)}}t.body=a;t.rowGaps=n;return new s(t.type,t,e.mode)}function o(e,r,a){if(typeof e===\"string\"){e=[e]}if(typeof r===\"number\"){r={numArgs:r}}var i={numArgs:r.numArgs||0,argTypes:r.argTypes,greediness:1,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,handler:a};for(var n=0;n<e.length;++n){t.exports[e[n]]=i}}o(\"array\",{numArgs:1},function(e,t){var r=t[0];r=r.value.map?r.value:[r];var a=r.map(function(e){var t=e.value;if(\"lcr\".indexOf(t)!==-1){return{type:\"align\",align:t}}else if(t===\"|\"){return{type:\"separator\",separator:\"|\"}}throw new i(\"Unknown column alignment: \"+e.value,e)});var n={type:\"array\",cols:a,hskipBeforeAndAfter:true};n=l(e.parser,n);return n});o([\"matrix\",\"pmatrix\",\"bmatrix\",\"Bmatrix\",\"vmatrix\",\"Vmatrix\"],{},function(e){var t={matrix:null,pmatrix:[\"(\",\")\"],bmatrix:[\"[\",\"]\"],Bmatrix:[\"\\\\{\",\"\\\\}\"],vmatrix:[\"|\",\"|\"],Vmatrix:[\"\\\\Vert\",\"\\\\Vert\"]}[e.envName];var r={type:\"array\",hskipBeforeAndAfter:false};r=l(e.parser,r);if(t){r=new s(\"leftright\",{body:[r],left:t[0],right:t[1]},e.mode)}return r});o(\"cases\",{},function(e){var t={type:\"array\",arraystretch:1.2,cols:[{type:\"align\",align:\"l\",pregap:0,postgap:n.TEXT.metrics.quad},{type:\"align\",align:\"l\",pregap:0,postgap:0}]};t=l(e.parser,t);t=new s(\"leftright\",{body:[t],left:\"\\\\{\",right:\".\"},e.mode);return t});o(\"aligned\",{},function(e){var t={type:\"array\",cols:[]};t=l(e.parser,t);var r=new s(\"ordgroup\",[],e.mode);var a=0;t.value.body.forEach(function(e){var t;for(t=1;t<e.length;t+=2){e[t].value.unshift(r)}if(a<e.length){a=e.length}});for(var i=0;i<a;++i){var n=\"r\";var o=0;if(i%2===1){n=\"l\"}else if(i>0){o=2}t.value.cols[i]={type:\"align\",align:n,pregap:o,postgap:0}}return t})},{\"./ParseError\":6,\"./Style\":9,\"./parseData\":21}],17:[function(e,t,r){var a=e(\"./Style\");var i=e(\"./unicodeRegexes\").cjkRegex;var n={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25]};var s=0;var l=0;var o=0;var u=0;var p=.431;var h=1;var c=0;var m=.04;var f=.111;var v=.166;var d=.2;var g=.6;var y=.1;var x=10;var b=2/x;var w={defaultRuleThickness:m,bigOpSpacing1:f,bigOpSpacing2:v,bigOpSpacing3:d,bigOpSpacing4:g,bigOpSpacing5:y,ptPerEm:x,doubleRuleSep:b};var k=e(\"./fontMetricsData\");var z={\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xc6\":\"A\",\"\\xc7\":\"C\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xcc\":\"I\",\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xd0\":\"D\",\"\\xd1\":\"N\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xdd\":\"Y\",\"\\xde\":\"o\",\"\\xdf\":\"B\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xe6\":\"a\",\"\\xe7\":\"c\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xf0\":\"d\",\"\\xf1\":\"n\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xfd\":\"y\",\"\\xfe\":\"o\",\"\\xff\":\"y\",\"\\u0410\":\"A\",\"\\u0411\":\"B\",\"\\u0412\":\"B\",\"\\u0413\":\"F\",\"\\u0414\":\"A\",\"\\u0415\":\"E\",\"\\u0416\":\"K\",\"\\u0417\":\"3\",\"\\u0418\":\"N\",\"\\u0419\":\"N\",\"\\u041a\":\"K\",\"\\u041b\":\"N\",\"\\u041c\":\"M\",\"\\u041d\":\"H\",\"\\u041e\":\"O\",\"\\u041f\":\"N\",\"\\u0420\":\"P\",\"\\u0421\":\"C\",\"\\u0422\":\"T\",\"\\u0423\":\"y\",\"\\u0424\":\"O\",\"\\u0425\":\"X\",\"\\u0426\":\"U\",\"\\u0427\":\"h\",\"\\u0428\":\"W\",\"\\u0429\":\"W\",\"\\u042a\":\"B\",\"\\u042b\":\"X\",\"\\u042c\":\"B\",\"\\u042d\":\"3\",\"\\u042e\":\"X\",\"\\u042f\":\"R\",\"\\u0430\":\"a\",\"\\u0431\":\"b\",\"\\u0432\":\"a\",\"\\u0433\":\"r\",\"\\u0434\":\"y\",\"\\u0435\":\"e\",\"\\u0436\":\"m\",\"\\u0437\":\"e\",\"\\u0438\":\"n\",\"\\u0439\":\"n\",\"\\u043a\":\"n\",\"\\u043b\":\"n\",\"\\u043c\":\"m\",\"\\u043d\":\"n\",\"\\u043e\":\"o\",\"\\u043f\":\"n\",\"\\u0440\":\"p\",\"\\u0441\":\"c\",\"\\u0442\":\"o\",\"\\u0443\":\"y\",\"\\u0444\":\"b\",\"\\u0445\":\"x\",\"\\u0446\":\"n\",\"\\u0447\":\"n\",\"\\u0448\":\"w\",\"\\u0449\":\"w\",\"\\u044a\":\"a\",\"\\u044b\":\"m\",\"\\u044c\":\"a\",\"\\u044d\":\"e\",\"\\u044e\":\"m\",\"\\u044f\":\"r\"};var S=function(e,t){var r=e.charCodeAt(0);if(e[0]in z){r=z[e[0]].charCodeAt(0)}else if(i.test(e[0])){r=\"M\".charCodeAt(0)}var a=k[t][r];if(a){return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}};t.exports={metrics:w,sigmas:n,getCharacterMetrics:S}},{\"./Style\":9,\"./fontMetricsData\":18,\"./unicodeRegexes\":24}],18:[function(e,t,r){t.exports={\"AMS-Regular\":{65:[0,.68889,0,0],66:[0,.68889,0,0],67:[0,.68889,0,0],68:[0,.68889,0,0],69:[0,.68889,0,0],70:[0,.68889,0,0],71:[0,.68889,0,0],72:[0,.68889,0,0],73:[0,.68889,0,0],74:[.16667,.68889,0,0],75:[0,.68889,0,0],76:[0,.68889,0,0],77:[0,.68889,0,0],78:[0,.68889,0,0],79:[.16667,.68889,0,0],80:[0,.68889,0,0],81:[.16667,.68889,0,0],82:[0,.68889,0,0],83:[0,.68889,0,0],84:[0,.68889,0,0],85:[0,.68889,0,0],86:[0,.68889,0,0],87:[0,.68889,0,0],88:[0,.68889,0,0],89:[0,.68889,0,0],90:[0,.68889,0,0],107:[0,.68889,0,0],165:[0,.675,.025,0],174:[.15559,.69224,0,0],240:[0,.68889,0,0],295:[0,.68889,0,0],710:[0,.825,0,0],732:[0,.9,0,0],770:[0,.825,0,0],771:[0,.9,0,0],989:[.08167,.58167,0,0],1008:[0,.43056,.04028,0],8245:[0,.54986,0,0],8463:[0,.68889,0,0],8487:[0,.68889,0,0],8498:[0,.68889,0,0],8502:[0,.68889,0,0],8503:[0,.68889,0,0],8504:[0,.68889,0,0],8513:[0,.68889,0,0],8592:[-.03598,.46402,0,0],8594:[-.03598,.46402,0,0],8602:[-.13313,.36687,0,0],8603:[-.13313,.36687,0,0],8606:[.01354,.52239,0,0],8608:[.01354,.52239,0,0],8610:[.01354,.52239,0,0],8611:[.01354,.52239,0,0],8619:[0,.54986,0,0],8620:[0,.54986,0,0],8621:[-.13313,.37788,0,0],8622:[-.13313,.36687,0,0],8624:[0,.69224,0,0],8625:[0,.69224,0,0],8630:[0,.43056,0,0],8631:[0,.43056,0,0],8634:[.08198,.58198,0,0],8635:[.08198,.58198,0,0],8638:[.19444,.69224,0,0],8639:[.19444,.69224,0,0],8642:[.19444,.69224,0,0],8643:[.19444,.69224,0,0],8644:[.1808,.675,0,0],8646:[.1808,.675,0,0],8647:[.1808,.675,0,0],8648:[.19444,.69224,0,0],8649:[.1808,.675,0,0],8650:[.19444,.69224,0,0],8651:[.01354,.52239,0,0],8652:[.01354,.52239,0,0],8653:[-.13313,.36687,0,0],8654:[-.13313,.36687,0,0],8655:[-.13313,.36687,0,0],8666:[.13667,.63667,0,0],8667:[.13667,.63667,0,0],8669:[-.13313,.37788,0,0],8672:[-.064,.437,0,0],8674:[-.064,.437,0,0],8705:[0,.825,0,0],8708:[0,.68889,0,0],8709:[.08167,.58167,0,0],8717:[0,.43056,0,0],8722:[-.03598,.46402,0,0],8724:[.08198,.69224,0,0],8726:[.08167,.58167,0,0],8733:[0,.69224,0,0],8736:[0,.69224,0,0],8737:[0,.69224,0,0],8738:[.03517,.52239,0,0],8739:[.08167,.58167,0,0],8740:[.25142,.74111,0,0],8741:[.08167,.58167,0,0],8742:[.25142,.74111,0,0],8756:[0,.69224,0,0],8757:[0,.69224,0,0],8764:[-.13313,.36687,0,0],8765:[-.13313,.37788,0,0],8769:[-.13313,.36687,0,0],8770:[-.03625,.46375,0,0],8774:[.30274,.79383,0,0],8776:[-.01688,.48312,0,0],8778:[.08167,.58167,0,0],8782:[.06062,.54986,0,0],8783:[.06062,.54986,0,0],8785:[.08198,.58198,0,0],8786:[.08198,.58198,0,0],8787:[.08198,.58198,0,0],8790:[0,.69224,0,0],8791:[.22958,.72958,0,0],8796:[.08198,.91667,0,0],8806:[.25583,.75583,0,0],\n8807:[.25583,.75583,0,0],8808:[.25142,.75726,0,0],8809:[.25142,.75726,0,0],8812:[.25583,.75583,0,0],8814:[.20576,.70576,0,0],8815:[.20576,.70576,0,0],8816:[.30274,.79383,0,0],8817:[.30274,.79383,0,0],8818:[.22958,.72958,0,0],8819:[.22958,.72958,0,0],8822:[.1808,.675,0,0],8823:[.1808,.675,0,0],8828:[.13667,.63667,0,0],8829:[.13667,.63667,0,0],8830:[.22958,.72958,0,0],8831:[.22958,.72958,0,0],8832:[.20576,.70576,0,0],8833:[.20576,.70576,0,0],8840:[.30274,.79383,0,0],8841:[.30274,.79383,0,0],8842:[.13597,.63597,0,0],8843:[.13597,.63597,0,0],8847:[.03517,.54986,0,0],8848:[.03517,.54986,0,0],8858:[.08198,.58198,0,0],8859:[.08198,.58198,0,0],8861:[.08198,.58198,0,0],8862:[0,.675,0,0],8863:[0,.675,0,0],8864:[0,.675,0,0],8865:[0,.675,0,0],8872:[0,.69224,0,0],8873:[0,.69224,0,0],8874:[0,.69224,0,0],8876:[0,.68889,0,0],8877:[0,.68889,0,0],8878:[0,.68889,0,0],8879:[0,.68889,0,0],8882:[.03517,.54986,0,0],8883:[.03517,.54986,0,0],8884:[.13667,.63667,0,0],8885:[.13667,.63667,0,0],8888:[0,.54986,0,0],8890:[.19444,.43056,0,0],8891:[.19444,.69224,0,0],8892:[.19444,.69224,0,0],8901:[0,.54986,0,0],8903:[.08167,.58167,0,0],8905:[.08167,.58167,0,0],8906:[.08167,.58167,0,0],8907:[0,.69224,0,0],8908:[0,.69224,0,0],8909:[-.03598,.46402,0,0],8910:[0,.54986,0,0],8911:[0,.54986,0,0],8912:[.03517,.54986,0,0],8913:[.03517,.54986,0,0],8914:[0,.54986,0,0],8915:[0,.54986,0,0],8916:[0,.69224,0,0],8918:[.0391,.5391,0,0],8919:[.0391,.5391,0,0],8920:[.03517,.54986,0,0],8921:[.03517,.54986,0,0],8922:[.38569,.88569,0,0],8923:[.38569,.88569,0,0],8926:[.13667,.63667,0,0],8927:[.13667,.63667,0,0],8928:[.30274,.79383,0,0],8929:[.30274,.79383,0,0],8934:[.23222,.74111,0,0],8935:[.23222,.74111,0,0],8936:[.23222,.74111,0,0],8937:[.23222,.74111,0,0],8938:[.20576,.70576,0,0],8939:[.20576,.70576,0,0],8940:[.30274,.79383,0,0],8941:[.30274,.79383,0,0],8994:[.19444,.69224,0,0],8995:[.19444,.69224,0,0],9416:[.15559,.69224,0,0],9484:[0,.69224,0,0],9488:[0,.69224,0,0],9492:[0,.37788,0,0],9496:[0,.37788,0,0],9585:[.19444,.68889,0,0],9586:[.19444,.74111,0,0],9632:[0,.675,0,0],9633:[0,.675,0,0],9650:[0,.54986,0,0],9651:[0,.54986,0,0],9654:[.03517,.54986,0,0],9660:[0,.54986,0,0],9661:[0,.54986,0,0],9664:[.03517,.54986,0,0],9674:[.11111,.69224,0,0],9733:[.19444,.69224,0,0],10003:[0,.69224,0,0],10016:[0,.69224,0,0],10731:[.11111,.69224,0,0],10846:[.19444,.75583,0,0],10877:[.13667,.63667,0,0],10878:[.13667,.63667,0,0],10885:[.25583,.75583,0,0],10886:[.25583,.75583,0,0],10887:[.13597,.63597,0,0],10888:[.13597,.63597,0,0],10889:[.26167,.75726,0,0],10890:[.26167,.75726,0,0],10891:[.48256,.98256,0,0],10892:[.48256,.98256,0,0],10901:[.13667,.63667,0,0],10902:[.13667,.63667,0,0],10933:[.25142,.75726,0,0],10934:[.25142,.75726,0,0],10935:[.26167,.75726,0,0],10936:[.26167,.75726,0,0],10937:[.26167,.75726,0,0],10938:[.26167,.75726,0,0],10949:[.25583,.75583,0,0],10950:[.25583,.75583,0,0],10955:[.28481,.79383,0,0],10956:[.28481,.79383,0,0],57350:[.08167,.58167,0,0],57351:[.08167,.58167,0,0],57352:[.08167,.58167,0,0],57353:[0,.43056,.04028,0],57356:[.25142,.75726,0,0],57357:[.25142,.75726,0,0],57358:[.41951,.91951,0,0],57359:[.30274,.79383,0,0],57360:[.30274,.79383,0,0],57361:[.41951,.91951,0,0],57366:[.25142,.75726,0,0],57367:[.25142,.75726,0,0],57368:[.25142,.75726,0,0],57369:[.25142,.75726,0,0],57370:[.13597,.63597,0,0],57371:[.13597,.63597,0,0]},\"Caligraphic-Regular\":{48:[0,.43056,0,0],49:[0,.43056,0,0],50:[0,.43056,0,0],51:[.19444,.43056,0,0],52:[.19444,.43056,0,0],53:[.19444,.43056,0,0],54:[0,.64444,0,0],55:[.19444,.43056,0,0],56:[0,.64444,0,0],57:[.19444,.43056,0,0],65:[0,.68333,0,.19445],66:[0,.68333,.03041,.13889],67:[0,.68333,.05834,.13889],68:[0,.68333,.02778,.08334],69:[0,.68333,.08944,.11111],70:[0,.68333,.09931,.11111],71:[.09722,.68333,.0593,.11111],72:[0,.68333,.00965,.11111],73:[0,.68333,.07382,0],74:[.09722,.68333,.18472,.16667],75:[0,.68333,.01445,.05556],76:[0,.68333,0,.13889],77:[0,.68333,0,.13889],78:[0,.68333,.14736,.08334],79:[0,.68333,.02778,.11111],80:[0,.68333,.08222,.08334],81:[.09722,.68333,0,.11111],82:[0,.68333,0,.08334],83:[0,.68333,.075,.13889],84:[0,.68333,.25417,0],85:[0,.68333,.09931,.08334],86:[0,.68333,.08222,0],87:[0,.68333,.08222,.08334],88:[0,.68333,.14643,.13889],89:[.09722,.68333,.08222,.08334],90:[0,.68333,.07944,.13889]},\"Fraktur-Regular\":{33:[0,.69141,0,0],34:[0,.69141,0,0],38:[0,.69141,0,0],39:[0,.69141,0,0],40:[.24982,.74947,0,0],41:[.24982,.74947,0,0],42:[0,.62119,0,0],43:[.08319,.58283,0,0],44:[0,.10803,0,0],45:[.08319,.58283,0,0],46:[0,.10803,0,0],47:[.24982,.74947,0,0],48:[0,.47534,0,0],49:[0,.47534,0,0],50:[0,.47534,0,0],51:[.18906,.47534,0,0],52:[.18906,.47534,0,0],53:[.18906,.47534,0,0],54:[0,.69141,0,0],55:[.18906,.47534,0,0],56:[0,.69141,0,0],57:[.18906,.47534,0,0],58:[0,.47534,0,0],59:[.12604,.47534,0,0],61:[-.13099,.36866,0,0],63:[0,.69141,0,0],65:[0,.69141,0,0],66:[0,.69141,0,0],67:[0,.69141,0,0],68:[0,.69141,0,0],69:[0,.69141,0,0],70:[.12604,.69141,0,0],71:[0,.69141,0,0],72:[.06302,.69141,0,0],73:[0,.69141,0,0],74:[.12604,.69141,0,0],75:[0,.69141,0,0],76:[0,.69141,0,0],77:[0,.69141,0,0],78:[0,.69141,0,0],79:[0,.69141,0,0],80:[.18906,.69141,0,0],81:[.03781,.69141,0,0],82:[0,.69141,0,0],83:[0,.69141,0,0],84:[0,.69141,0,0],85:[0,.69141,0,0],86:[0,.69141,0,0],87:[0,.69141,0,0],88:[0,.69141,0,0],89:[.18906,.69141,0,0],90:[.12604,.69141,0,0],91:[.24982,.74947,0,0],93:[.24982,.74947,0,0],94:[0,.69141,0,0],97:[0,.47534,0,0],98:[0,.69141,0,0],99:[0,.47534,0,0],100:[0,.62119,0,0],101:[0,.47534,0,0],102:[.18906,.69141,0,0],103:[.18906,.47534,0,0],104:[.18906,.69141,0,0],105:[0,.69141,0,0],106:[0,.69141,0,0],107:[0,.69141,0,0],108:[0,.69141,0,0],109:[0,.47534,0,0],110:[0,.47534,0,0],111:[0,.47534,0,0],112:[.18906,.52396,0,0],113:[.18906,.47534,0,0],114:[0,.47534,0,0],115:[0,.47534,0,0],116:[0,.62119,0,0],117:[0,.47534,0,0],118:[0,.52396,0,0],119:[0,.52396,0,0],120:[.18906,.47534,0,0],121:[.18906,.47534,0,0],122:[.18906,.47534,0,0],8216:[0,.69141,0,0],8217:[0,.69141,0,0],58112:[0,.62119,0,0],58113:[0,.62119,0,0],58114:[.18906,.69141,0,0],58115:[.18906,.69141,0,0],58116:[.18906,.47534,0,0],58117:[0,.69141,0,0],58118:[0,.62119,0,0],58119:[0,.47534,0,0]},\"Main-Bold\":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.13333,.63333,0,0],44:[.19444,.15556,0,0],45:[0,.44444,0,0],46:[0,.15556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.44444,0,0],59:[.19444,.44444,0,0],60:[.08556,.58556,0,0],61:[-.10889,.39111,0,0],62:[.08556,.58556,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,0,0],67:[0,.68611,0,0],68:[0,.68611,0,0],69:[0,.68611,0,0],70:[0,.68611,0,0],71:[0,.68611,0,0],72:[0,.68611,0,0],73:[0,.68611,0,0],74:[0,.68611,0,0],75:[0,.68611,0,0],76:[0,.68611,0,0],77:[0,.68611,0,0],78:[0,.68611,0,0],79:[0,.68611,0,0],80:[0,.68611,0,0],81:[.19444,.68611,0,0],82:[0,.68611,0,0],83:[0,.68611,0,0],84:[0,.68611,0,0],85:[0,.68611,0,0],86:[0,.68611,.01597,0],87:[0,.68611,.01597,0],88:[0,.68611,0,0],89:[0,.68611,.02875,0],90:[0,.68611,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.13444,.03194,0],96:[0,.69444,0,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.10903,0],103:[.19444,.44444,.01597,0],104:[0,.69444,0,0],105:[0,.69444,0,0],106:[.19444,.69444,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,0,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.01597,0],119:[0,.44444,.01597,0],120:[0,.44444,0,0],121:[.19444,.44444,.01597,0],122:[0,.44444,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.34444,0,0],168:[0,.69444,0,0],172:[0,.44444,0,0],175:[0,.59611,0,0],176:[0,.69444,0,0],177:[.13333,.63333,0,0],180:[0,.69444,0,0],215:[.13333,.63333,0,0],247:[.13333,.63333,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],710:[0,.69444,0,0],711:[0,.63194,0,0],713:[0,.59611,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.69444,0,0],730:[0,.69444,0,0],732:[0,.69444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.69444,0,0],772:[0,.59611,0,0],774:[0,.69444,0,0],775:[0,.69444,0,0],776:[0,.69444,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],824:[.19444,.69444,0,0],915:[0,.68611,0,0],916:[0,.68611,0,0],920:[0,.68611,0,0],923:[0,.68611,0,0],926:[0,.68611,0,0],928:[0,.68611,0,0],931:[0,.68611,0,0],933:[0,.68611,0,0],934:[0,.68611,0,0],936:[0,.68611,0,0],937:[0,.68611,0,0],8211:[0,.44444,.03194,0],8212:[0,.44444,.03194,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8242:[0,.55556,0,0],8407:[0,.72444,.15486,0],8463:[0,.69444,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,0],8472:[.19444,.44444,0,0],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.10889,.39111,0,0],8593:[.19444,.69444,0,0],8594:[-.10889,.39111,0,0],8595:[.19444,.69444,0,0],8596:[-.10889,.39111,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8636:[-.10889,.39111,0,0],8637:[-.10889,.39111,0,0],8640:[-.10889,.39111,0,0],8641:[-.10889,.39111,0,0],8656:[-.10889,.39111,0,0],8657:[.19444,.69444,0,0],8658:[-.10889,.39111,0,0],8659:[.19444,.69444,0,0],8660:[-.10889,.39111,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.06389,0],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68611,0,0],8712:[.08556,.58556,0,0],8715:[.08556,.58556,0,0],8722:[.13333,.63333,0,0],8723:[.13333,.63333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.02778,.47222,0,0],8728:[-.02639,.47361,0,0],8729:[-.02639,.47361,0,0],8730:[.18,.82,0,0],8733:[0,.44444,0,0],8734:[0,.44444,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.12778,0],8764:[-.10889,.39111,0,0],8768:[.19444,.69444,0,0],8771:[.00222,.50222,0,0],8776:[.02444,.52444,0,0],8781:[.00222,.50222,0,0],8801:[.00222,.50222,0,0],8804:[.19667,.69667,0,0],8805:[.19667,.69667,0,0],8810:[.08556,.58556,0,0],8811:[.08556,.58556,0,0],8826:[.08556,.58556,0,0],8827:[.08556,.58556,0,0],8834:[.08556,.58556,0,0],8835:[.08556,.58556,0,0],8838:[.19667,.69667,0,0],8839:[.19667,.69667,0,0],8846:[0,.55556,0,0],8849:[.19667,.69667,0,0],8850:[.19667,.69667,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.13333,.63333,0,0],8854:[.13333,.63333,0,0],8855:[.13333,.63333,0,0],8856:[.13333,.63333,0,0],8857:[.13333,.63333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8900:[-.02639,.47361,0,0],8901:[-.02639,.47361,0,0],8902:[-.02778,.47222,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.13889,.36111,0,0],8995:[-.13889,.36111,0,0],9651:[.19444,.69444,0,0],9657:[-.02778,.47222,0,0],9661:[.19444,.69444,0,0],9667:[-.02778,.47222,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10815:[0,.68611,0,0],10927:[.19667,.69667,0,0],10928:[.19667,.69667,0,0]},\"Main-Italic\":{33:[0,.69444,.12417,0],34:[0,.69444,.06961,0],35:[.19444,.69444,.06616,0],37:[.05556,.75,.13639,0],38:[0,.69444,.09694,0],39:[0,.69444,.12417,0],40:[.25,.75,.16194,0],41:[.25,.75,.03694,0],42:[0,.75,.14917,0],43:[.05667,.56167,.03694,0],44:[.19444,.10556,0,0],45:[0,.43056,.02826,0],46:[0,.10556,0,0],47:[.25,.75,.16194,0],48:[0,.64444,.13556,0],49:[0,.64444,.13556,0],50:[0,.64444,.13556,0],51:[0,.64444,.13556,0],52:[.19444,.64444,.13556,0],53:[0,.64444,.13556,0],54:[0,.64444,.13556,0],55:[.19444,.64444,.13556,0],56:[0,.64444,.13556,0],57:[0,.64444,.13556,0],58:[0,.43056,.0582,0],59:[.19444,.43056,.0582,0],61:[-.13313,.36687,.06616,0],63:[0,.69444,.1225,0],64:[0,.69444,.09597,0],65:[0,.68333,0,0],66:[0,.68333,.10257,0],67:[0,.68333,.14528,0],68:[0,.68333,.09403,0],69:[0,.68333,.12028,0],70:[0,.68333,.13305,0],71:[0,.68333,.08722,0],72:[0,.68333,.16389,0],73:[0,.68333,.15806,0],74:[0,.68333,.14028,0],75:[0,.68333,.14528,0],76:[0,.68333,0,0],77:[0,.68333,.16389,0],78:[0,.68333,.16389,0],79:[0,.68333,.09403,0],80:[0,.68333,.10257,0],81:[.19444,.68333,.09403,0],82:[0,.68333,.03868,0],83:[0,.68333,.11972,0],84:[0,.68333,.13305,0],85:[0,.68333,.16389,0],86:[0,.68333,.18361,0],87:[0,.68333,.18361,0],88:[0,.68333,.15806,0],89:[0,.68333,.19383,0],90:[0,.68333,.14528,0],91:[.25,.75,.1875,0],93:[.25,.75,.10528,0],94:[0,.69444,.06646,0],95:[.31,.12056,.09208,0],97:[0,.43056,.07671,0],98:[0,.69444,.06312,0],99:[0,.43056,.05653,0],100:[0,.69444,.10333,0],101:[0,.43056,.07514,0],102:[.19444,.69444,.21194,0],103:[.19444,.43056,.08847,0],104:[0,.69444,.07671,0],105:[0,.65536,.1019,0],106:[.19444,.65536,.14467,0],107:[0,.69444,.10764,0],108:[0,.69444,.10333,0],109:[0,.43056,.07671,0],110:[0,.43056,.07671,0],111:[0,.43056,.06312,0],112:[.19444,.43056,.06312,0],113:[.19444,.43056,.08847,0],114:[0,.43056,.10764,0],115:[0,.43056,.08208,0],116:[0,.61508,.09486,0],117:[0,.43056,.07671,0],118:[0,.43056,.10764,0],119:[0,.43056,.10764,0],120:[0,.43056,.12042,0],121:[.19444,.43056,.08847,0],122:[0,.43056,.12292,0],126:[.35,.31786,.11585,0],163:[0,.69444,0,0],305:[0,.43056,0,.02778],567:[.19444,.43056,0,.08334],768:[0,.69444,0,0],769:[0,.69444,.09694,0],770:[0,.69444,.06646,0],771:[0,.66786,.11585,0],772:[0,.56167,.10333,0],774:[0,.69444,.10806,0],775:[0,.66786,.11752,0],776:[0,.66786,.10474,0],778:[0,.69444,0,0],779:[0,.69444,.1225,0],780:[0,.62847,.08295,0],915:[0,.68333,.13305,0],916:[0,.68333,0,0],920:[0,.68333,.09403,0],923:[0,.68333,0,0],926:[0,.68333,.15294,0],928:[0,.68333,.16389,0],931:[0,.68333,.12028,0],933:[0,.68333,.11111,0],934:[0,.68333,.05986,0],936:[0,.68333,.11111,0],937:[0,.68333,.10257,0],8211:[0,.43056,.09208,0],8212:[0,.43056,.09208,0],8216:[0,.69444,.12417,0],8217:[0,.69444,.12417,0],8220:[0,.69444,.1685,0],8221:[0,.69444,.06961,0],8463:[0,.68889,0,0]},\"Main-Regular\":{32:[0,0,0,0],33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.19444,.10556,0,0],45:[0,.43056,0,0],46:[0,.10556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.43056,0,0],59:[.19444,.43056,0,0],60:[.0391,.5391,0,0],61:[-.13313,.36687,0,0],62:[.0391,.5391,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68333,0,0],66:[0,.68333,0,0],67:[0,.68333,0,0],68:[0,.68333,0,0],69:[0,.68333,0,0],70:[0,.68333,0,0],71:[0,.68333,0,0],72:[0,.68333,0,0],73:[0,.68333,0,0],74:[0,.68333,0,0],75:[0,.68333,0,0],76:[0,.68333,0,0],77:[0,.68333,0,0],78:[0,.68333,0,0],79:[0,.68333,0,0],80:[0,.68333,0,0],81:[.19444,.68333,0,0],82:[0,.68333,0,0],83:[0,.68333,0,0],84:[0,.68333,0,0],85:[0,.68333,0,0],86:[0,.68333,.01389,0],87:[0,.68333,.01389,0],88:[0,.68333,0,0],89:[0,.68333,.025,0],90:[0,.68333,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.12056,.02778,0],96:[0,.69444,0,0],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,0],100:[0,.69444,0,0],101:[0,.43056,0,0],102:[0,.69444,.07778,0],103:[.19444,.43056,.01389,0],104:[0,.69444,0,0],105:[0,.66786,0,0],106:[.19444,.66786,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.19444,.43056,0,0],113:[.19444,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.61508,0,0],117:[0,.43056,0,0],118:[0,.43056,.01389,0],119:[0,.43056,.01389,0],120:[0,.43056,0,0],121:[.19444,.43056,.01389,0],122:[0,.43056,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.31786,0,0],160:[0,0,0,0],168:[0,.66786,0,0],172:[0,.43056,0,0],175:[0,.56778,0,0],176:[0,.69444,0,0],177:[.08333,.58333,0,0],180:[0,.69444,0,0],215:[.08333,.58333,0,0],247:[.08333,.58333,0,0],305:[0,.43056,0,0],567:[.19444,.43056,0,0],710:[0,.69444,0,0],711:[0,.62847,0,0],713:[0,.56778,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.66786,0,0],730:[0,.69444,0,0],732:[0,.66786,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.66786,0,0],772:[0,.56778,0,0],774:[0,.69444,0,0],775:[0,.66786,0,0],776:[0,.66786,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.62847,0,0],824:[.19444,.69444,0,0],915:[0,.68333,0,0],916:[0,.68333,0,0],920:[0,.68333,0,0],923:[0,.68333,0,0],926:[0,.68333,0,0],928:[0,.68333,0,0],931:[0,.68333,0,0],933:[0,.68333,0,0],934:[0,.68333,0,0],936:[0,.68333,0,0],937:[0,.68333,0,0],8211:[0,.43056,.02778,0],8212:[0,.43056,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8230:[0,.12,0,0],8242:[0,.55556,0,0],8407:[0,.71444,.15382,0],8463:[0,.68889,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,.11111],8472:[.19444,.43056,0,.11111],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.13313,.36687,0,0],8593:[.19444,.69444,0,0],8594:[-.13313,.36687,0,0],8595:[.19444,.69444,0,0],8596:[-.13313,.36687,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8614:[.011,.511,0,0],8617:[.011,.511,0,0],8618:[.011,.511,0,0],8636:[-.13313,.36687,0,0],8637:[-.13313,.36687,0,0],8640:[-.13313,.36687,0,0],8641:[-.13313,.36687,0,0],8652:[.011,.671,0,0],8656:[-.13313,.36687,0,0],8657:[.19444,.69444,0,0],8658:[-.13313,.36687,0,0],8659:[.19444,.69444,0,0],8660:[-.13313,.36687,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.05556,.08334],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68333,0,0],8712:[.0391,.5391,0,0],8715:[.0391,.5391,0,0],8722:[.08333,.58333,0,0],8723:[.08333,.58333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.03472,.46528,0,0],8728:[-.05555,.44445,0,0],8729:[-.05555,.44445,0,0],8730:[.2,.8,0,0],8733:[0,.43056,0,0],8734:[0,.43056,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.11111,0],8764:[-.13313,.36687,0,0],8768:[.19444,.69444,0,0],8771:[-.03625,.46375,0,0],8773:[-.022,.589,0,0],8776:[-.01688,.48312,0,0],8781:[-.03625,.46375,0,0],8784:[-.133,.67,0,0],8800:[.215,.716,0,0],8801:[-.03625,.46375,0,0],8804:[.13597,.63597,0,0],8805:[.13597,.63597,0,0],8810:[.0391,.5391,0,0],8811:[.0391,.5391,0,0],8826:[.0391,.5391,0,0],8827:[.0391,.5391,0,0],8834:[.0391,.5391,0,0],8835:[.0391,.5391,0,0],8838:[.13597,.63597,0,0],8839:[.13597,.63597,0,0],8846:[0,.55556,0,0],8849:[.13597,.63597,0,0],8850:[.13597,.63597,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.08333,.58333,0,0],8854:[.08333,.58333,0,0],8855:[.08333,.58333,0,0],8856:[.08333,.58333,0,0],8857:[.08333,.58333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8872:[.249,.75,0,0],8900:[-.05555,.44445,0,0],8901:[-.05555,.44445,0,0],8902:[-.03472,.46528,0,0],8904:[.005,.505,0,0],8942:[.03,.9,0,0],8943:[-.19,.31,0,0],8945:[-.1,.82,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.14236,.35764,0,0],8995:[-.14236,.35764,0,0],9136:[.244,.744,0,0],9137:[.244,.744,0,0],9651:[.19444,.69444,0,0],9657:[-.03472,.46528,0,0],9661:[.19444,.69444,0,0],9667:[-.03472,.46528,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10222:[.244,.744,0,0],10223:[.244,.744,0,0],10229:[.011,.511,0,0],10230:[.011,.511,0,0],10231:[.011,.511,0,0],10232:[.024,.525,0,0],10233:[.024,.525,0,0],10234:[.024,.525,0,0],10236:[.011,.511,0,0],10815:[0,.68333,0,0],10927:[.13597,.63597,0,0],10928:[.13597,.63597,0,0]},\"Math-BoldItalic\":{47:[.19444,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,.04835,0],67:[0,.68611,.06979,0],68:[0,.68611,.03194,0],69:[0,.68611,.05451,0],70:[0,.68611,.15972,0],71:[0,.68611,0,0],72:[0,.68611,.08229,0],73:[0,.68611,.07778,0],74:[0,.68611,.10069,0],75:[0,.68611,.06979,0],76:[0,.68611,0,0],77:[0,.68611,.11424,0],78:[0,.68611,.11424,0],79:[0,.68611,.03194,0],80:[0,.68611,.15972,0],81:[.19444,.68611,0,0],82:[0,.68611,.00421,0],83:[0,.68611,.05382,0],84:[0,.68611,.15972,0],85:[0,.68611,.11424,0],86:[0,.68611,.25555,0],87:[0,.68611,.15972,0],88:[0,.68611,.07778,0],89:[0,.68611,.25555,0],90:[0,.68611,.06979,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[.19444,.69444,.11042,0],103:[.19444,.44444,.03704,0],104:[0,.69444,0,0],105:[0,.69326,0,0],106:[.19444,.69326,.0622,0],107:[0,.69444,.01852,0],108:[0,.69444,.0088,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,.03704,0],114:[0,.44444,.03194,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.03704,0],119:[0,.44444,.02778,0],120:[0,.44444,0,0],121:[.19444,.44444,.03704,0],122:[0,.44444,.04213,0],915:[0,.68611,.15972,0],916:[0,.68611,0,0],920:[0,.68611,.03194,0],923:[0,.68611,0,0],926:[0,.68611,.07458,0],928:[0,.68611,.08229,0],931:[0,.68611,.05451,0],933:[0,.68611,.15972,0],934:[0,.68611,0,0],936:[0,.68611,.11653,0],937:[0,.68611,.04835,0],945:[0,.44444,0,0],946:[.19444,.69444,.03403,0],947:[.19444,.44444,.06389,0],948:[0,.69444,.03819,0],949:[0,.44444,0,0],950:[.19444,.69444,.06215,0],951:[.19444,.44444,.03704,0],952:[0,.69444,.03194,0],953:[0,.44444,0,0],954:[0,.44444,0,0],955:[0,.69444,0,0],956:[.19444,.44444,0,0],957:[0,.44444,.06898,0],958:[.19444,.69444,.03021,0],959:[0,.44444,0,0],960:[0,.44444,.03704,0],961:[.19444,.44444,0,0],962:[.09722,.44444,.07917,0],963:[0,.44444,.03704,0],964:[0,.44444,.13472,0],965:[0,.44444,.03704,0],966:[.19444,.44444,0,0],967:[.19444,.44444,0,0],968:[.19444,.69444,.03704,0],969:[0,.44444,.03704,0],977:[0,.69444,0,0],981:[.19444,.69444,0,0],982:[0,.44444,.03194,0],1009:[.19444,.44444,0,0],1013:[0,.44444,0,0]},\"Math-Italic\":{47:[.19444,.69444,0,0],65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},\"Math-Regular\":{65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},\"SansSerif-Regular\":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.125,.08333,0,0],45:[0,.44444,0,0],46:[0,.08333,0,0],47:[.25,.75,0,0],48:[0,.65556,0,0],49:[0,.65556,0,0],50:[0,.65556,0,0],51:[0,.65556,0,0],52:[0,.65556,0,0],53:[0,.65556,0,0],54:[0,.65556,0,0],55:[0,.65556,0,0],56:[0,.65556,0,0],57:[0,.65556,0,0],58:[0,.44444,0,0],59:[.125,.44444,0,0],61:[-.13,.37,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.69444,0,0],66:[0,.69444,0,0],67:[0,.69444,0,0],68:[0,.69444,0,0],69:[0,.69444,0,0],70:[0,.69444,0,0],71:[0,.69444,0,0],72:[0,.69444,0,0],73:[0,.69444,0,0],74:[0,.69444,0,0],75:[0,.69444,0,0],76:[0,.69444,0,0],77:[0,.69444,0,0],78:[0,.69444,0,0],79:[0,.69444,0,0],80:[0,.69444,0,0],81:[.125,.69444,0,0],82:[0,.69444,0,0],83:[0,.69444,0,0],84:[0,.69444,0,0],85:[0,.69444,0,0],86:[0,.69444,.01389,0],87:[0,.69444,.01389,0],88:[0,.69444,0,0],89:[0,.69444,.025,0],90:[0,.69444,0,0],91:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.35,.09444,.02778,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.06944,0],103:[.19444,.44444,.01389,0],104:[0,.69444,0,0],105:[0,.67937,0,0],106:[.19444,.67937,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,.01389,0],115:[0,.44444,0,0],116:[0,.57143,0,0],117:[0,.44444,0,0],118:[0,.44444,.01389,0],119:[0,.44444,.01389,0],120:[0,.44444,0,0],121:[.19444,.44444,.01389,0],122:[0,.44444,0,0],126:[.35,.32659,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.67659,0,0],772:[0,.60889,0,0],774:[0,.69444,0,0],775:[0,.67937,0,0],776:[0,.67937,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],915:[0,.69444,0,0],916:[0,.69444,0,0],920:[0,.69444,0,0],923:[0,.69444,0,0],926:[0,.69444,0,0],928:[0,.69444,0,0],931:[0,.69444,0,0],933:[0,.69444,0,0],934:[0,.69444,0,0],936:[0,.69444,0,0],937:[0,.69444,0,0],8211:[0,.44444,.02778,0],8212:[0,.44444,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0]},\"Script-Regular\":{65:[0,.7,.22925,0],66:[0,.7,.04087,0],67:[0,.7,.1689,0],68:[0,.7,.09371,0],69:[0,.7,.18583,0],70:[0,.7,.13634,0],71:[0,.7,.17322,0],72:[0,.7,.29694,0],73:[0,.7,.19189,0],74:[.27778,.7,.19189,0],75:[0,.7,.31259,0],76:[0,.7,.19189,0],77:[0,.7,.15981,0],78:[0,.7,.3525,0],79:[0,.7,.08078,0],80:[0,.7,.08078,0],81:[0,.7,.03305,0],82:[0,.7,.06259,0],83:[0,.7,.19189,0],84:[0,.7,.29087,0],85:[0,.7,.25815,0],86:[0,.7,.27523,0],87:[0,.7,.27523,0],88:[0,.7,.26006,0],89:[0,.7,.2939,0],90:[0,.7,.24037,0]},\"Size1-Regular\":{40:[.35001,.85,0,0],41:[.35001,.85,0,0],47:[.35001,.85,0,0],91:[.35001,.85,0,0],92:[.35001,.85,0,0],93:[.35001,.85,0,0],123:[.35001,.85,0,0],125:[.35001,.85,0,0],710:[0,.72222,0,0],732:[0,.72222,0,0],770:[0,.72222,0,0],771:[0,.72222,0,0],8214:[-99e-5,.601,0,0],8593:[1e-5,.6,0,0],8595:[1e-5,.6,0,0],8657:[1e-5,.6,0,0],8659:[1e-5,.6,0,0],8719:[.25001,.75,0,0],8720:[.25001,.75,0,0],8721:[.25001,.75,0,0],8730:[.35001,.85,0,0],8739:[-.00599,.606,0,0],8741:[-.00599,.606,0,0],8747:[.30612,.805,.19445,0],8748:[.306,.805,.19445,0],8749:[.306,.805,.19445,0],8750:[.30612,.805,.19445,0],8896:[.25001,.75,0,0],8897:[.25001,.75,0,0],8898:[.25001,.75,0,0],8899:[.25001,.75,0,0],8968:[.35001,.85,0,0],8969:[.35001,.85,0,0],8970:[.35001,.85,0,0],8971:[.35001,.85,0,0],9168:[-99e-5,.601,0,0],10216:[.35001,.85,0,0],10217:[.35001,.85,0,0],10752:[.25001,.75,0,0],10753:[.25001,.75,0,0],10754:[.25001,.75,0,0],10756:[.25001,.75,0,0],10758:[.25001,.75,0,0]},\"Size2-Regular\":{40:[.65002,1.15,0,0],41:[.65002,1.15,0,0],47:[.65002,1.15,0,0],91:[.65002,1.15,0,0],92:[.65002,1.15,0,0],93:[.65002,1.15,0,0],123:[.65002,1.15,0,0],125:[.65002,1.15,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8719:[.55001,1.05,0,0],8720:[.55001,1.05,0,0],8721:[.55001,1.05,0,0],8730:[.65002,1.15,0,0],8747:[.86225,1.36,.44445,0],8748:[.862,1.36,.44445,0],8749:[.862,1.36,.44445,0],8750:[.86225,1.36,.44445,0],8896:[.55001,1.05,0,0],8897:[.55001,1.05,0,0],8898:[.55001,1.05,0,0],8899:[.55001,1.05,0,0],8968:[.65002,1.15,0,0],8969:[.65002,1.15,0,0],8970:[.65002,1.15,0,0],8971:[.65002,1.15,0,0],10216:[.65002,1.15,0,0],10217:[.65002,1.15,0,0],10752:[.55001,1.05,0,0],10753:[.55001,1.05,0,0],10754:[.55001,1.05,0,0],\n10756:[.55001,1.05,0,0],10758:[.55001,1.05,0,0]},\"Size3-Regular\":{40:[.95003,1.45,0,0],41:[.95003,1.45,0,0],47:[.95003,1.45,0,0],91:[.95003,1.45,0,0],92:[.95003,1.45,0,0],93:[.95003,1.45,0,0],123:[.95003,1.45,0,0],125:[.95003,1.45,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8730:[.95003,1.45,0,0],8968:[.95003,1.45,0,0],8969:[.95003,1.45,0,0],8970:[.95003,1.45,0,0],8971:[.95003,1.45,0,0],10216:[.95003,1.45,0,0],10217:[.95003,1.45,0,0]},\"Size4-Regular\":{40:[1.25003,1.75,0,0],41:[1.25003,1.75,0,0],47:[1.25003,1.75,0,0],91:[1.25003,1.75,0,0],92:[1.25003,1.75,0,0],93:[1.25003,1.75,0,0],123:[1.25003,1.75,0,0],125:[1.25003,1.75,0,0],710:[0,.825,0,0],732:[0,.825,0,0],770:[0,.825,0,0],771:[0,.825,0,0],8730:[1.25003,1.75,0,0],8968:[1.25003,1.75,0,0],8969:[1.25003,1.75,0,0],8970:[1.25003,1.75,0,0],8971:[1.25003,1.75,0,0],9115:[.64502,1.155,0,0],9116:[1e-5,.6,0,0],9117:[.64502,1.155,0,0],9118:[.64502,1.155,0,0],9119:[1e-5,.6,0,0],9120:[.64502,1.155,0,0],9121:[.64502,1.155,0,0],9122:[-99e-5,.601,0,0],9123:[.64502,1.155,0,0],9124:[.64502,1.155,0,0],9125:[-99e-5,.601,0,0],9126:[.64502,1.155,0,0],9127:[1e-5,.9,0,0],9128:[.65002,1.15,0,0],9129:[.90001,0,0,0],9130:[0,.3,0,0],9131:[1e-5,.9,0,0],9132:[.65002,1.15,0,0],9133:[.90001,0,0,0],9143:[.88502,.915,0,0],10216:[1.25003,1.75,0,0],10217:[1.25003,1.75,0,0],57344:[-.00499,.605,0,0],57345:[-.00499,.605,0,0],57680:[0,.12,0,0],57681:[0,.12,0,0],57682:[0,.12,0,0],57683:[0,.12,0,0]},\"Typewriter-Regular\":{33:[0,.61111,0,0],34:[0,.61111,0,0],35:[0,.61111,0,0],36:[.08333,.69444,0,0],37:[.08333,.69444,0,0],38:[0,.61111,0,0],39:[0,.61111,0,0],40:[.08333,.69444,0,0],41:[.08333,.69444,0,0],42:[0,.52083,0,0],43:[-.08056,.53055,0,0],44:[.13889,.125,0,0],45:[-.08056,.53055,0,0],46:[0,.125,0,0],47:[.08333,.69444,0,0],48:[0,.61111,0,0],49:[0,.61111,0,0],50:[0,.61111,0,0],51:[0,.61111,0,0],52:[0,.61111,0,0],53:[0,.61111,0,0],54:[0,.61111,0,0],55:[0,.61111,0,0],56:[0,.61111,0,0],57:[0,.61111,0,0],58:[0,.43056,0,0],59:[.13889,.43056,0,0],60:[-.05556,.55556,0,0],61:[-.19549,.41562,0,0],62:[-.05556,.55556,0,0],63:[0,.61111,0,0],64:[0,.61111,0,0],65:[0,.61111,0,0],66:[0,.61111,0,0],67:[0,.61111,0,0],68:[0,.61111,0,0],69:[0,.61111,0,0],70:[0,.61111,0,0],71:[0,.61111,0,0],72:[0,.61111,0,0],73:[0,.61111,0,0],74:[0,.61111,0,0],75:[0,.61111,0,0],76:[0,.61111,0,0],77:[0,.61111,0,0],78:[0,.61111,0,0],79:[0,.61111,0,0],80:[0,.61111,0,0],81:[.13889,.61111,0,0],82:[0,.61111,0,0],83:[0,.61111,0,0],84:[0,.61111,0,0],85:[0,.61111,0,0],86:[0,.61111,0,0],87:[0,.61111,0,0],88:[0,.61111,0,0],89:[0,.61111,0,0],90:[0,.61111,0,0],91:[.08333,.69444,0,0],92:[.08333,.69444,0,0],93:[.08333,.69444,0,0],94:[0,.61111,0,0],95:[.09514,0,0,0],96:[0,.61111,0,0],97:[0,.43056,0,0],98:[0,.61111,0,0],99:[0,.43056,0,0],100:[0,.61111,0,0],101:[0,.43056,0,0],102:[0,.61111,0,0],103:[.22222,.43056,0,0],104:[0,.61111,0,0],105:[0,.61111,0,0],106:[.22222,.61111,0,0],107:[0,.61111,0,0],108:[0,.61111,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.22222,.43056,0,0],113:[.22222,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.55358,0,0],117:[0,.43056,0,0],118:[0,.43056,0,0],119:[0,.43056,0,0],120:[0,.43056,0,0],121:[.22222,.43056,0,0],122:[0,.43056,0,0],123:[.08333,.69444,0,0],124:[.08333,.69444,0,0],125:[.08333,.69444,0,0],126:[0,.61111,0,0],127:[0,.61111,0,0],305:[0,.43056,0,0],567:[.22222,.43056,0,0],768:[0,.61111,0,0],769:[0,.61111,0,0],770:[0,.61111,0,0],771:[0,.61111,0,0],772:[0,.56555,0,0],774:[0,.61111,0,0],776:[0,.61111,0,0],778:[0,.61111,0,0],780:[0,.56597,0,0],915:[0,.61111,0,0],916:[0,.61111,0,0],920:[0,.61111,0,0],923:[0,.61111,0,0],926:[0,.61111,0,0],928:[0,.61111,0,0],931:[0,.61111,0,0],933:[0,.61111,0,0],934:[0,.61111,0,0],936:[0,.61111,0,0],937:[0,.61111,0,0],2018:[0,.61111,0,0],2019:[0,.61111,0,0],8242:[0,.61111,0,0]}}},{}],19:[function(e,t,r){var a=e(\"./utils\");var i=e(\"./ParseError\");var n=e(\"./parseData\");var s=n.ParseNode;function l(e,r,a){if(typeof e===\"string\"){e=[e]}if(typeof r===\"number\"){r={numArgs:r}}var i={numArgs:r.numArgs,argTypes:r.argTypes,greediness:r.greediness===undefined?1:r.greediness,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,handler:a};for(var n=0;n<e.length;++n){t.exports[e[n]]=i}}var o=function(e){if(e.type===\"ordgroup\"){return e.value}else{return[e]}};l(\"\\\\sqrt\",{numArgs:1,numOptionalArgs:1},function(e,t){var r=t[0];var a=t[1];return{type:\"sqrt\",body:a,index:r}});var u={\"\\\\text\":undefined,\"\\\\textrm\":\"mathrm\",\"\\\\textsf\":\"mathsf\",\"\\\\texttt\":\"mathtt\",\"\\\\textnormal\":\"mathrm\",\"\\\\textbf\":\"mathbf\",\"\\\\textit\":\"textit\"};l([\"\\\\text\",\"\\\\textrm\",\"\\\\textsf\",\"\\\\texttt\",\"\\\\textnormal\",\"\\\\textbf\",\"\\\\textit\"],{numArgs:1,argTypes:[\"text\"],greediness:2,allowedInText:true},function(e,t){var r=t[0];return{type:\"text\",body:o(r),style:u[e.funcName]}});l(\"\\\\color\",{numArgs:2,allowedInText:true,greediness:3,argTypes:[\"color\",\"original\"]},function(e,t){var r=t[0];var a=t[1];return{type:\"color\",color:r.value,value:o(a)}});l(\"\\\\overline\",{numArgs:1},function(e,t){var r=t[0];return{type:\"overline\",body:r}});l(\"\\\\underline\",{numArgs:1},function(e,t){var r=t[0];return{type:\"underline\",body:r}});l(\"\\\\rule\",{numArgs:2,numOptionalArgs:1,argTypes:[\"size\",\"size\",\"size\"]},function(e,t){var r=t[0];var a=t[1];var i=t[2];return{type:\"rule\",shift:r&&r.value,width:a.value,height:i.value}});l([\"\\\\kern\",\"\\\\mkern\"],{numArgs:1,argTypes:[\"size\"]},function(e,t){return{type:\"kern\",dimension:t[0].value}});l(\"\\\\KaTeX\",{numArgs:0},function(e){return{type:\"katex\"}});l(\"\\\\phantom\",{numArgs:1},function(e,t){var r=t[0];return{type:\"phantom\",value:o(r)}});l([\"\\\\mathord\",\"\\\\mathbin\",\"\\\\mathrel\",\"\\\\mathopen\",\"\\\\mathclose\",\"\\\\mathpunct\",\"\\\\mathinner\"],{numArgs:1},function(e,t){var r=t[0];return{type:\"mclass\",mclass:\"m\"+e.funcName.substr(5),value:o(r)}});l(\"\\\\stackrel\",{numArgs:2},function(e,t){var r=t[0];var a=t[1];var i=new s(\"op\",{type:\"op\",limits:true,alwaysHandleSupSub:true,symbol:false,value:o(a)},a.mode);var n=new s(\"supsub\",{base:i,sup:r,sub:null},r.mode);return{type:\"mclass\",mclass:\"mrel\",value:[n]}});l(\"\\\\bmod\",{numArgs:0},function(e,t){return{type:\"mod\",modType:\"bmod\",value:null}});l([\"\\\\pod\",\"\\\\pmod\",\"\\\\mod\"],{numArgs:1},function(e,t){var r=t[0];return{type:\"mod\",modType:e.funcName.substr(1),value:o(r)}});var p={\"\\\\bigl\":{mclass:\"mopen\",size:1},\"\\\\Bigl\":{mclass:\"mopen\",size:2},\"\\\\biggl\":{mclass:\"mopen\",size:3},\"\\\\Biggl\":{mclass:\"mopen\",size:4},\"\\\\bigr\":{mclass:\"mclose\",size:1},\"\\\\Bigr\":{mclass:\"mclose\",size:2},\"\\\\biggr\":{mclass:\"mclose\",size:3},\"\\\\Biggr\":{mclass:\"mclose\",size:4},\"\\\\bigm\":{mclass:\"mrel\",size:1},\"\\\\Bigm\":{mclass:\"mrel\",size:2},\"\\\\biggm\":{mclass:\"mrel\",size:3},\"\\\\Biggm\":{mclass:\"mrel\",size:4},\"\\\\big\":{mclass:\"mord\",size:1},\"\\\\Big\":{mclass:\"mord\",size:2},\"\\\\bigg\":{mclass:\"mord\",size:3},\"\\\\Bigg\":{mclass:\"mord\",size:4}};var h=[\"(\",\")\",\"[\",\"\\\\lbrack\",\"]\",\"\\\\rbrack\",\"\\\\{\",\"\\\\lbrace\",\"\\\\}\",\"\\\\rbrace\",\"\\\\lfloor\",\"\\\\rfloor\",\"\\\\lceil\",\"\\\\rceil\",\"<\",\">\",\"\\\\langle\",\"\\\\rangle\",\"\\\\lt\",\"\\\\gt\",\"\\\\lvert\",\"\\\\rvert\",\"\\\\lVert\",\"\\\\rVert\",\"\\\\lgroup\",\"\\\\rgroup\",\"\\\\lmoustache\",\"\\\\rmoustache\",\"/\",\"\\\\backslash\",\"|\",\"\\\\vert\",\"\\\\|\",\"\\\\Vert\",\"\\\\uparrow\",\"\\\\Uparrow\",\"\\\\downarrow\",\"\\\\Downarrow\",\"\\\\updownarrow\",\"\\\\Updownarrow\",\".\"];var c={\"\\\\Bbb\":\"\\\\mathbb\",\"\\\\bold\":\"\\\\mathbf\",\"\\\\frak\":\"\\\\mathfrak\"};l([\"\\\\blue\",\"\\\\orange\",\"\\\\pink\",\"\\\\red\",\"\\\\green\",\"\\\\gray\",\"\\\\purple\",\"\\\\blueA\",\"\\\\blueB\",\"\\\\blueC\",\"\\\\blueD\",\"\\\\blueE\",\"\\\\tealA\",\"\\\\tealB\",\"\\\\tealC\",\"\\\\tealD\",\"\\\\tealE\",\"\\\\greenA\",\"\\\\greenB\",\"\\\\greenC\",\"\\\\greenD\",\"\\\\greenE\",\"\\\\goldA\",\"\\\\goldB\",\"\\\\goldC\",\"\\\\goldD\",\"\\\\goldE\",\"\\\\redA\",\"\\\\redB\",\"\\\\redC\",\"\\\\redD\",\"\\\\redE\",\"\\\\maroonA\",\"\\\\maroonB\",\"\\\\maroonC\",\"\\\\maroonD\",\"\\\\maroonE\",\"\\\\purpleA\",\"\\\\purpleB\",\"\\\\purpleC\",\"\\\\purpleD\",\"\\\\purpleE\",\"\\\\mintA\",\"\\\\mintB\",\"\\\\mintC\",\"\\\\grayA\",\"\\\\grayB\",\"\\\\grayC\",\"\\\\grayD\",\"\\\\grayE\",\"\\\\grayF\",\"\\\\grayG\",\"\\\\grayH\",\"\\\\grayI\",\"\\\\kaBlue\",\"\\\\kaGreen\"],{numArgs:1,allowedInText:true,greediness:3},function(e,t){var r=t[0];return{type:\"color\",color:\"katex-\"+e.funcName.slice(1),value:o(r)}});l([\"\\\\arcsin\",\"\\\\arccos\",\"\\\\arctan\",\"\\\\arg\",\"\\\\cos\",\"\\\\cosh\",\"\\\\cot\",\"\\\\coth\",\"\\\\csc\",\"\\\\deg\",\"\\\\dim\",\"\\\\exp\",\"\\\\hom\",\"\\\\ker\",\"\\\\lg\",\"\\\\ln\",\"\\\\log\",\"\\\\sec\",\"\\\\sin\",\"\\\\sinh\",\"\\\\tan\",\"\\\\tanh\"],{numArgs:0},function(e){return{type:\"op\",limits:false,symbol:false,body:e.funcName}});l([\"\\\\det\",\"\\\\gcd\",\"\\\\inf\",\"\\\\lim\",\"\\\\liminf\",\"\\\\limsup\",\"\\\\max\",\"\\\\min\",\"\\\\Pr\",\"\\\\sup\"],{numArgs:0},function(e){return{type:\"op\",limits:true,symbol:false,body:e.funcName}});l([\"\\\\int\",\"\\\\iint\",\"\\\\iiint\",\"\\\\oint\"],{numArgs:0},function(e){return{type:\"op\",limits:false,symbol:true,body:e.funcName}});l([\"\\\\coprod\",\"\\\\bigvee\",\"\\\\bigwedge\",\"\\\\biguplus\",\"\\\\bigcap\",\"\\\\bigcup\",\"\\\\intop\",\"\\\\prod\",\"\\\\sum\",\"\\\\bigotimes\",\"\\\\bigoplus\",\"\\\\bigodot\",\"\\\\bigsqcup\",\"\\\\smallint\"],{numArgs:0},function(e){return{type:\"op\",limits:true,symbol:true,body:e.funcName}});l(\"\\\\mathop\",{numArgs:1},function(e,t){var r=t[0];return{type:\"op\",limits:false,symbol:false,value:o(r)}});l([\"\\\\dfrac\",\"\\\\frac\",\"\\\\tfrac\",\"\\\\dbinom\",\"\\\\binom\",\"\\\\tbinom\",\"\\\\\\\\atopfrac\"],{numArgs:2,greediness:2},function(e,t){var r=t[0];var a=t[1];var i;var n=null;var s=null;var l=\"auto\";switch(e.funcName){case\"\\\\dfrac\":case\"\\\\frac\":case\"\\\\tfrac\":i=true;break;case\"\\\\\\\\atopfrac\":i=false;break;case\"\\\\dbinom\":case\"\\\\binom\":case\"\\\\tbinom\":i=false;n=\"(\";s=\")\";break;default:throw new Error(\"Unrecognized genfrac command\")}switch(e.funcName){case\"\\\\dfrac\":case\"\\\\dbinom\":l=\"display\";break;case\"\\\\tfrac\":case\"\\\\tbinom\":l=\"text\";break}return{type:\"genfrac\",numer:r,denom:a,hasBarLine:i,leftDelim:n,rightDelim:s,size:l}});l([\"\\\\llap\",\"\\\\rlap\"],{numArgs:1,allowedInText:true},function(e,t){var r=t[0];return{type:e.funcName.slice(1),body:r}});var m=function(e,t){if(a.contains(h,e.value)){return e}else{throw new i(\"Invalid delimiter: '\"+e.value+\"' after '\"+t.funcName+\"'\",e)}};l([\"\\\\bigl\",\"\\\\Bigl\",\"\\\\biggl\",\"\\\\Biggl\",\"\\\\bigr\",\"\\\\Bigr\",\"\\\\biggr\",\"\\\\Biggr\",\"\\\\bigm\",\"\\\\Bigm\",\"\\\\biggm\",\"\\\\Biggm\",\"\\\\big\",\"\\\\Big\",\"\\\\bigg\",\"\\\\Bigg\"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:\"delimsizing\",size:p[e.funcName].size,mclass:p[e.funcName].mclass,value:r.value}});l([\"\\\\left\",\"\\\\right\"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:\"leftright\",value:r.value}});l(\"\\\\middle\",{numArgs:1},function(e,t){var r=m(t[0],e);if(!e.parser.leftrightDepth){throw new i(\"\\\\middle without preceding \\\\left\",r)}return{type:\"middle\",value:r.value}});l([\"\\\\tiny\",\"\\\\scriptsize\",\"\\\\footnotesize\",\"\\\\small\",\"\\\\normalsize\",\"\\\\large\",\"\\\\Large\",\"\\\\LARGE\",\"\\\\huge\",\"\\\\Huge\"],0,null);l([\"\\\\displaystyle\",\"\\\\textstyle\",\"\\\\scriptstyle\",\"\\\\scriptscriptstyle\"],0,null);l([\"\\\\mathrm\",\"\\\\mathit\",\"\\\\mathbf\",\"\\\\mathbb\",\"\\\\mathcal\",\"\\\\mathfrak\",\"\\\\mathscr\",\"\\\\mathsf\",\"\\\\mathtt\",\"\\\\Bbb\",\"\\\\bold\",\"\\\\frak\"],{numArgs:1,greediness:2},function(e,t){var r=t[0];var a=e.funcName;if(a in c){a=c[a]}return{type:\"font\",font:a.slice(1),body:r}});l([\"\\\\acute\",\"\\\\grave\",\"\\\\ddot\",\"\\\\tilde\",\"\\\\bar\",\"\\\\breve\",\"\\\\check\",\"\\\\hat\",\"\\\\vec\",\"\\\\dot\"],{numArgs:1},function(e,t){var r=t[0];return{type:\"accent\",accent:e.funcName,base:r}});l([\"\\\\over\",\"\\\\choose\",\"\\\\atop\"],{numArgs:0,infix:true},function(e){var t;switch(e.funcName){case\"\\\\over\":t=\"\\\\frac\";break;case\"\\\\choose\":t=\"\\\\binom\";break;case\"\\\\atop\":t=\"\\\\\\\\atopfrac\";break;default:throw new Error(\"Unrecognized infix genfrac command\")}return{type:\"infix\",replaceWith:t,token:e.token}});l([\"\\\\\\\\\",\"\\\\cr\"],{numArgs:0,numOptionalArgs:1,argTypes:[\"size\"]},function(e,t){var r=t[0];return{type:\"cr\",size:r}});l([\"\\\\begin\",\"\\\\end\"],{numArgs:1,argTypes:[\"text\"]},function(e,t){var r=t[0];if(r.type!==\"ordgroup\"){throw new i(\"Invalid environment name\",r)}var a=\"\";for(var n=0;n<r.value.length;++n){a+=r.value[n].value}return{type:\"environment\",name:a,nameGroup:r}})},{\"./ParseError\":6,\"./parseData\":21,\"./utils\":25}],20:[function(e,t,r){var a=e(\"./utils\");function i(e,t){this.type=e;this.attributes={};this.children=t||[]}i.prototype.setAttribute=function(e,t){this.attributes[e]=t};i.prototype.toNode=function(){var e=document.createElementNS(\"http://www.w3.org/1998/Math/MathML\",this.type);for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e.setAttribute(t,this.attributes[t])}}for(var r=0;r<this.children.length;r++){e.appendChild(this.children[r].toNode())}return e};i.prototype.toMarkup=function(){var e=\"<\"+this.type;for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e+=\" \"+t+'=\"';e+=a.escape(this.attributes[t]);e+='\"'}}e+=\">\";for(var r=0;r<this.children.length;r++){e+=this.children[r].toMarkup()}e+=\"</\"+this.type+\">\";return e};function n(e){this.text=e}n.prototype.toNode=function(){return document.createTextNode(this.text)};n.prototype.toMarkup=function(){return a.escape(this.text)};t.exports={MathNode:i,TextNode:n}},{\"./utils\":25}],21:[function(e,t,r){function a(e,t,r,a,i){this.type=e;this.value=t;this.mode=r;if(a&&(!i||i.lexer===a.lexer)){this.lexer=a.lexer;this.start=a.start;this.end=(i||a).end}}t.exports={ParseNode:a}},{}],22:[function(e,t,r){var a=e(\"./Parser\");var i=function(e,t){if(!(typeof e===\"string\"||e instanceof String)){throw new TypeError(\"KaTeX can only parse string typed expression\")}var r=new a(e,t);return r.parse()};t.exports=i},{\"./Parser\":7}],23:[function(e,t,r){t.exports={math:{},text:{}};function a(e,r,a,i,n){t.exports[e][n]={font:r,group:a,replace:i}}var i=\"math\";var n=\"text\";var s=\"main\";var l=\"ams\";var o=\"accent\";var u=\"bin\";var p=\"close\";var h=\"inner\";var c=\"mathord\";var m=\"op\";var f=\"open\";var v=\"punct\";var d=\"rel\";var g=\"spacing\";var y=\"textord\";a(i,s,d,\"\\u2261\",\"\\\\equiv\");a(i,s,d,\"\\u227a\",\"\\\\prec\");a(i,s,d,\"\\u227b\",\"\\\\succ\");a(i,s,d,\"\\u223c\",\"\\\\sim\");a(i,s,d,\"\\u22a5\",\"\\\\perp\");a(i,s,d,\"\\u2aaf\",\"\\\\preceq\");a(i,s,d,\"\\u2ab0\",\"\\\\succeq\");a(i,s,d,\"\\u2243\",\"\\\\simeq\");a(i,s,d,\"\\u2223\",\"\\\\mid\");a(i,s,d,\"\\u226a\",\"\\\\ll\");a(i,s,d,\"\\u226b\",\"\\\\gg\");a(i,s,d,\"\\u224d\",\"\\\\asymp\");a(i,s,d,\"\\u2225\",\"\\\\parallel\");a(i,s,d,\"\\u22c8\",\"\\\\bowtie\");a(i,s,d,\"\\u2323\",\"\\\\smile\");a(i,s,d,\"\\u2291\",\"\\\\sqsubseteq\");a(i,s,d,\"\\u2292\",\"\\\\sqsupseteq\");a(i,s,d,\"\\u2250\",\"\\\\doteq\");a(i,s,d,\"\\u2322\",\"\\\\frown\");a(i,s,d,\"\\u220b\",\"\\\\ni\");a(i,s,d,\"\\u221d\",\"\\\\propto\");a(i,s,d,\"\\u22a2\",\"\\\\vdash\");a(i,s,d,\"\\u22a3\",\"\\\\dashv\");a(i,s,d,\"\\u220b\",\"\\\\owns\");a(i,s,v,\".\",\"\\\\ldotp\");a(i,s,v,\"\\u22c5\",\"\\\\cdotp\");a(i,s,y,\"#\",\"\\\\#\");a(n,s,y,\"#\",\"\\\\#\");a(i,s,y,\"&\",\"\\\\&\");a(n,s,y,\"&\",\"\\\\&\");a(i,s,y,\"\\u2135\",\"\\\\aleph\");a(i,s,y,\"\\u2200\",\"\\\\forall\");a(i,s,y,\"\\u210f\",\"\\\\hbar\");a(i,s,y,\"\\u2203\",\"\\\\exists\");a(i,s,y,\"\\u2207\",\"\\\\nabla\");a(i,s,y,\"\\u266d\",\"\\\\flat\");a(i,s,y,\"\\u2113\",\"\\\\ell\");a(i,s,y,\"\\u266e\",\"\\\\natural\");a(i,s,y,\"\\u2663\",\"\\\\clubsuit\");a(i,s,y,\"\\u2118\",\"\\\\wp\");a(i,s,y,\"\\u266f\",\"\\\\sharp\");a(i,s,y,\"\\u2662\",\"\\\\diamondsuit\");a(i,s,y,\"\\u211c\",\"\\\\Re\");a(i,s,y,\"\\u2661\",\"\\\\heartsuit\");a(i,s,y,\"\\u2111\",\"\\\\Im\");a(i,s,y,\"\\u2660\",\"\\\\spadesuit\");a(i,s,y,\"\\u2020\",\"\\\\dag\");a(i,s,y,\"\\u2021\",\"\\\\ddag\");a(i,s,p,\"\\u23b1\",\"\\\\rmoustache\");a(i,s,f,\"\\u23b0\",\"\\\\lmoustache\");a(i,s,p,\"\\u27ef\",\"\\\\rgroup\");a(i,s,f,\"\\u27ee\",\"\\\\lgroup\");a(i,s,u,\"\\u2213\",\"\\\\mp\");a(i,s,u,\"\\u2296\",\"\\\\ominus\");a(i,s,u,\"\\u228e\",\"\\\\uplus\");a(i,s,u,\"\\u2293\",\"\\\\sqcap\");a(i,s,u,\"\\u2217\",\"\\\\ast\");a(i,s,u,\"\\u2294\",\"\\\\sqcup\");a(i,s,u,\"\\u25ef\",\"\\\\bigcirc\");a(i,s,u,\"\\u2219\",\"\\\\bullet\");a(i,s,u,\"\\u2021\",\"\\\\ddagger\");a(i,s,u,\"\\u2240\",\"\\\\wr\");a(i,s,u,\"\\u2a3f\",\"\\\\amalg\");a(i,s,d,\"\\u27f5\",\"\\\\longleftarrow\");a(i,s,d,\"\\u21d0\",\"\\\\Leftarrow\");a(i,s,d,\"\\u27f8\",\"\\\\Longleftarrow\");a(i,s,d,\"\\u27f6\",\"\\\\longrightarrow\");a(i,s,d,\"\\u21d2\",\"\\\\Rightarrow\");a(i,s,d,\"\\u27f9\",\"\\\\Longrightarrow\");a(i,s,d,\"\\u2194\",\"\\\\leftrightarrow\");a(i,s,d,\"\\u27f7\",\"\\\\longleftrightarrow\");a(i,s,d,\"\\u21d4\",\"\\\\Leftrightarrow\");a(i,s,d,\"\\u27fa\",\"\\\\Longleftrightarrow\");a(i,s,d,\"\\u21a6\",\"\\\\mapsto\");a(i,s,d,\"\\u27fc\",\"\\\\longmapsto\");a(i,s,d,\"\\u2197\",\"\\\\nearrow\");a(i,s,d,\"\\u21a9\",\"\\\\hookleftarrow\");a(i,s,d,\"\\u21aa\",\"\\\\hookrightarrow\");a(i,s,d,\"\\u2198\",\"\\\\searrow\");a(i,s,d,\"\\u21bc\",\"\\\\leftharpoonup\");a(i,s,d,\"\\u21c0\",\"\\\\rightharpoonup\");a(i,s,d,\"\\u2199\",\"\\\\swarrow\");a(i,s,d,\"\\u21bd\",\"\\\\leftharpoondown\");a(i,s,d,\"\\u21c1\",\"\\\\rightharpoondown\");a(i,s,d,\"\\u2196\",\"\\\\nwarrow\");a(i,s,d,\"\\u21cc\",\"\\\\rightleftharpoons\");a(i,l,d,\"\\u226e\",\"\\\\nless\");a(i,l,d,\"\\ue010\",\"\\\\nleqslant\");a(i,l,d,\"\\ue011\",\"\\\\nleqq\");a(i,l,d,\"\\u2a87\",\"\\\\lneq\");a(i,l,d,\"\\u2268\",\"\\\\lneqq\");a(i,l,d,\"\\ue00c\",\"\\\\lvertneqq\");a(i,l,d,\"\\u22e6\",\"\\\\lnsim\");a(i,l,d,\"\\u2a89\",\"\\\\lnapprox\");a(i,l,d,\"\\u2280\",\"\\\\nprec\");a(i,l,d,\"\\u22e0\",\"\\\\npreceq\");a(i,l,d,\"\\u22e8\",\"\\\\precnsim\");a(i,l,d,\"\\u2ab9\",\"\\\\precnapprox\");a(i,l,d,\"\\u2241\",\"\\\\nsim\");a(i,l,d,\"\\ue006\",\"\\\\nshortmid\");a(i,l,d,\"\\u2224\",\"\\\\nmid\");a(i,l,d,\"\\u22ac\",\"\\\\nvdash\");a(i,l,d,\"\\u22ad\",\"\\\\nvDash\");a(i,l,d,\"\\u22ea\",\"\\\\ntriangleleft\");a(i,l,d,\"\\u22ec\",\"\\\\ntrianglelefteq\");a(i,l,d,\"\\u228a\",\"\\\\subsetneq\");a(i,l,d,\"\\ue01a\",\"\\\\varsubsetneq\");a(i,l,d,\"\\u2acb\",\"\\\\subsetneqq\");a(i,l,d,\"\\ue017\",\"\\\\varsubsetneqq\");a(i,l,d,\"\\u226f\",\"\\\\ngtr\");a(i,l,d,\"\\ue00f\",\"\\\\ngeqslant\");a(i,l,d,\"\\ue00e\",\"\\\\ngeqq\");a(i,l,d,\"\\u2a88\",\"\\\\gneq\");a(i,l,d,\"\\u2269\",\"\\\\gneqq\");a(i,l,d,\"\\ue00d\",\"\\\\gvertneqq\");a(i,l,d,\"\\u22e7\",\"\\\\gnsim\");a(i,l,d,\"\\u2a8a\",\"\\\\gnapprox\");a(i,l,d,\"\\u2281\",\"\\\\nsucc\");a(i,l,d,\"\\u22e1\",\"\\\\nsucceq\");a(i,l,d,\"\\u22e9\",\"\\\\succnsim\");a(i,l,d,\"\\u2aba\",\"\\\\succnapprox\");a(i,l,d,\"\\u2246\",\"\\\\ncong\");a(i,l,d,\"\\ue007\",\"\\\\nshortparallel\");a(i,l,d,\"\\u2226\",\"\\\\nparallel\");a(i,l,d,\"\\u22af\",\"\\\\nVDash\");a(i,l,d,\"\\u22eb\",\"\\\\ntriangleright\");a(i,l,d,\"\\u22ed\",\"\\\\ntrianglerighteq\");a(i,l,d,\"\\ue018\",\"\\\\nsupseteqq\");a(i,l,d,\"\\u228b\",\"\\\\supsetneq\");a(i,l,d,\"\\ue01b\",\"\\\\varsupsetneq\");a(i,l,d,\"\\u2acc\",\"\\\\supsetneqq\");a(i,l,d,\"\\ue019\",\"\\\\varsupsetneqq\");a(i,l,d,\"\\u22ae\",\"\\\\nVdash\");a(i,l,d,\"\\u2ab5\",\"\\\\precneqq\");a(i,l,d,\"\\u2ab6\",\"\\\\succneqq\");a(i,l,d,\"\\ue016\",\"\\\\nsubseteqq\");a(i,l,u,\"\\u22b4\",\"\\\\unlhd\");a(i,l,u,\"\\u22b5\",\"\\\\unrhd\");a(i,l,d,\"\\u219a\",\"\\\\nleftarrow\");a(i,l,d,\"\\u219b\",\"\\\\nrightarrow\");a(i,l,d,\"\\u21cd\",\"\\\\nLeftarrow\");a(i,l,d,\"\\u21cf\",\"\\\\nRightarrow\");a(i,l,d,\"\\u21ae\",\"\\\\nleftrightarrow\");a(i,l,d,\"\\u21ce\",\"\\\\nLeftrightarrow\");a(i,l,d,\"\\u25b3\",\"\\\\vartriangle\");a(i,l,y,\"\\u210f\",\"\\\\hslash\");a(i,l,y,\"\\u25bd\",\"\\\\triangledown\");a(i,l,y,\"\\u25ca\",\"\\\\lozenge\");a(i,l,y,\"\\u24c8\",\"\\\\circledS\");a(i,l,y,\"\\xae\",\"\\\\circledR\");a(i,l,y,\"\\u2221\",\"\\\\measuredangle\");a(i,l,y,\"\\u2204\",\"\\\\nexists\");a(i,l,y,\"\\u2127\",\"\\\\mho\");a(i,l,y,\"\\u2132\",\"\\\\Finv\");a(i,l,y,\"\\u2141\",\"\\\\Game\");a(i,l,y,\"k\",\"\\\\Bbbk\");a(i,l,y,\"\\u2035\",\"\\\\backprime\");a(i,l,y,\"\\u25b2\",\"\\\\blacktriangle\");a(i,l,y,\"\\u25bc\",\"\\\\blacktriangledown\");a(i,l,y,\"\\u25a0\",\"\\\\blacksquare\");a(i,l,y,\"\\u29eb\",\"\\\\blacklozenge\");a(i,l,y,\"\\u2605\",\"\\\\bigstar\");a(i,l,y,\"\\u2222\",\"\\\\sphericalangle\");a(i,l,y,\"\\u2201\",\"\\\\complement\");a(i,l,y,\"\\xf0\",\"\\\\eth\");a(i,l,y,\"\\u2571\",\"\\\\diagup\");a(i,l,y,\"\\u2572\",\"\\\\diagdown\");a(i,l,y,\"\\u25a1\",\"\\\\square\");a(i,l,y,\"\\u25a1\",\"\\\\Box\");a(i,l,y,\"\\u25ca\",\"\\\\Diamond\");a(i,l,y,\"\\xa5\",\"\\\\yen\");a(i,l,y,\"\\u2713\",\"\\\\checkmark\");a(i,l,y,\"\\u2136\",\"\\\\beth\");a(i,l,y,\"\\u2138\",\"\\\\daleth\");a(i,l,y,\"\\u2137\",\"\\\\gimel\");a(i,l,y,\"\\u03dd\",\"\\\\digamma\");a(i,l,y,\"\\u03f0\",\"\\\\varkappa\");a(i,l,f,\"\\u250c\",\"\\\\ulcorner\");a(i,l,p,\"\\u2510\",\"\\\\urcorner\");a(i,l,f,\"\\u2514\",\"\\\\llcorner\");a(i,l,p,\"\\u2518\",\"\\\\lrcorner\");a(i,l,d,\"\\u2266\",\"\\\\leqq\");a(i,l,d,\"\\u2a7d\",\"\\\\leqslant\");a(i,l,d,\"\\u2a95\",\"\\\\eqslantless\");a(i,l,d,\"\\u2272\",\"\\\\lesssim\");a(i,l,d,\"\\u2a85\",\"\\\\lessapprox\");a(i,l,d,\"\\u224a\",\"\\\\approxeq\");a(i,l,u,\"\\u22d6\",\"\\\\lessdot\");a(i,l,d,\"\\u22d8\",\"\\\\lll\");a(i,l,d,\"\\u2276\",\"\\\\lessgtr\");a(i,l,d,\"\\u22da\",\"\\\\lesseqgtr\");a(i,l,d,\"\\u2a8b\",\"\\\\lesseqqgtr\");a(i,l,d,\"\\u2251\",\"\\\\doteqdot\");a(i,l,d,\"\\u2253\",\"\\\\risingdotseq\");a(i,l,d,\"\\u2252\",\"\\\\fallingdotseq\");a(i,l,d,\"\\u223d\",\"\\\\backsim\");a(i,l,d,\"\\u22cd\",\"\\\\backsimeq\");a(i,l,d,\"\\u2ac5\",\"\\\\subseteqq\");a(i,l,d,\"\\u22d0\",\"\\\\Subset\");a(i,l,d,\"\\u228f\",\"\\\\sqsubset\");a(i,l,d,\"\\u227c\",\"\\\\preccurlyeq\");a(i,l,d,\"\\u22de\",\"\\\\curlyeqprec\");a(i,l,d,\"\\u227e\",\"\\\\precsim\");a(i,l,d,\"\\u2ab7\",\"\\\\precapprox\");a(i,l,d,\"\\u22b2\",\"\\\\vartriangleleft\");a(i,l,d,\"\\u22b4\",\"\\\\trianglelefteq\");a(i,l,d,\"\\u22a8\",\"\\\\vDash\");a(i,l,d,\"\\u22aa\",\"\\\\Vvdash\");a(i,l,d,\"\\u2323\",\"\\\\smallsmile\");a(i,l,d,\"\\u2322\",\"\\\\smallfrown\");a(i,l,d,\"\\u224f\",\"\\\\bumpeq\");a(i,l,d,\"\\u224e\",\"\\\\Bumpeq\");a(i,l,d,\"\\u2267\",\"\\\\geqq\");a(i,l,d,\"\\u2a7e\",\"\\\\geqslant\");a(i,l,d,\"\\u2a96\",\"\\\\eqslantgtr\");a(i,l,d,\"\\u2273\",\"\\\\gtrsim\");a(i,l,d,\"\\u2a86\",\"\\\\gtrapprox\");a(i,l,u,\"\\u22d7\",\"\\\\gtrdot\");a(i,l,d,\"\\u22d9\",\"\\\\ggg\");a(i,l,d,\"\\u2277\",\"\\\\gtrless\");a(i,l,d,\"\\u22db\",\"\\\\gtreqless\");a(i,l,d,\"\\u2a8c\",\"\\\\gtreqqless\");a(i,l,d,\"\\u2256\",\"\\\\eqcirc\");a(i,l,d,\"\\u2257\",\"\\\\circeq\");a(i,l,d,\"\\u225c\",\"\\\\triangleq\");a(i,l,d,\"\\u223c\",\"\\\\thicksim\");a(i,l,d,\"\\u2248\",\"\\\\thickapprox\");a(i,l,d,\"\\u2ac6\",\"\\\\supseteqq\");a(i,l,d,\"\\u22d1\",\"\\\\Supset\");a(i,l,d,\"\\u2290\",\"\\\\sqsupset\");a(i,l,d,\"\\u227d\",\"\\\\succcurlyeq\");a(i,l,d,\"\\u22df\",\"\\\\curlyeqsucc\");a(i,l,d,\"\\u227f\",\"\\\\succsim\");a(i,l,d,\"\\u2ab8\",\"\\\\succapprox\");a(i,l,d,\"\\u22b3\",\"\\\\vartriangleright\");a(i,l,d,\"\\u22b5\",\"\\\\trianglerighteq\");a(i,l,d,\"\\u22a9\",\"\\\\Vdash\");a(i,l,d,\"\\u2223\",\"\\\\shortmid\");a(i,l,d,\"\\u2225\",\"\\\\shortparallel\");a(i,l,d,\"\\u226c\",\"\\\\between\");a(i,l,d,\"\\u22d4\",\"\\\\pitchfork\");a(i,l,d,\"\\u221d\",\"\\\\varpropto\");a(i,l,d,\"\\u25c0\",\"\\\\blacktriangleleft\");a(i,l,d,\"\\u2234\",\"\\\\therefore\");a(i,l,d,\"\\u220d\",\"\\\\backepsilon\");a(i,l,d,\"\\u25b6\",\"\\\\blacktriangleright\");a(i,l,d,\"\\u2235\",\"\\\\because\");a(i,l,d,\"\\u22d8\",\"\\\\llless\");a(i,l,d,\"\\u22d9\",\"\\\\gggtr\");a(i,l,u,\"\\u22b2\",\"\\\\lhd\");a(i,l,u,\"\\u22b3\",\"\\\\rhd\");a(i,l,d,\"\\u2242\",\"\\\\eqsim\");a(i,s,d,\"\\u22c8\",\"\\\\Join\");a(i,l,d,\"\\u2251\",\"\\\\Doteq\");a(i,l,u,\"\\u2214\",\"\\\\dotplus\");a(i,l,u,\"\\u2216\",\"\\\\smallsetminus\");a(i,l,u,\"\\u22d2\",\"\\\\Cap\");a(i,l,u,\"\\u22d3\",\"\\\\Cup\");a(i,l,u,\"\\u2a5e\",\"\\\\doublebarwedge\");a(i,l,u,\"\\u229f\",\"\\\\boxminus\");a(i,l,u,\"\\u229e\",\"\\\\boxplus\");a(i,l,u,\"\\u22c7\",\"\\\\divideontimes\");a(i,l,u,\"\\u22c9\",\"\\\\ltimes\");a(i,l,u,\"\\u22ca\",\"\\\\rtimes\");a(i,l,u,\"\\u22cb\",\"\\\\leftthreetimes\");a(i,l,u,\"\\u22cc\",\"\\\\rightthreetimes\");a(i,l,u,\"\\u22cf\",\"\\\\curlywedge\");a(i,l,u,\"\\u22ce\",\"\\\\curlyvee\");a(i,l,u,\"\\u229d\",\"\\\\circleddash\");a(i,l,u,\"\\u229b\",\"\\\\circledast\");a(i,l,u,\"\\u22c5\",\"\\\\centerdot\");a(i,l,u,\"\\u22ba\",\"\\\\intercal\");a(i,l,u,\"\\u22d2\",\"\\\\doublecap\");a(i,l,u,\"\\u22d3\",\"\\\\doublecup\");a(i,l,u,\"\\u22a0\",\"\\\\boxtimes\");a(i,l,d,\"\\u21e2\",\"\\\\dashrightarrow\");a(i,l,d,\"\\u21e0\",\"\\\\dashleftarrow\");a(i,l,d,\"\\u21c7\",\"\\\\leftleftarrows\");a(i,l,d,\"\\u21c6\",\"\\\\leftrightarrows\");a(i,l,d,\"\\u21da\",\"\\\\Lleftarrow\");a(i,l,d,\"\\u219e\",\"\\\\twoheadleftarrow\");a(i,l,d,\"\\u21a2\",\"\\\\leftarrowtail\");a(i,l,d,\"\\u21ab\",\"\\\\looparrowleft\");a(i,l,d,\"\\u21cb\",\"\\\\leftrightharpoons\");a(i,l,d,\"\\u21b6\",\"\\\\curvearrowleft\");a(i,l,d,\"\\u21ba\",\"\\\\circlearrowleft\");a(i,l,d,\"\\u21b0\",\"\\\\Lsh\");a(i,l,d,\"\\u21c8\",\"\\\\upuparrows\");a(i,l,d,\"\\u21bf\",\"\\\\upharpoonleft\");a(i,l,d,\"\\u21c3\",\"\\\\downharpoonleft\");a(i,l,d,\"\\u22b8\",\"\\\\multimap\");a(i,l,d,\"\\u21ad\",\"\\\\leftrightsquigarrow\");a(i,l,d,\"\\u21c9\",\"\\\\rightrightarrows\");a(i,l,d,\"\\u21c4\",\"\\\\rightleftarrows\");a(i,l,d,\"\\u21a0\",\"\\\\twoheadrightarrow\");a(i,l,d,\"\\u21a3\",\"\\\\rightarrowtail\");a(i,l,d,\"\\u21ac\",\"\\\\looparrowright\");a(i,l,d,\"\\u21b7\",\"\\\\curvearrowright\");a(i,l,d,\"\\u21bb\",\"\\\\circlearrowright\");a(i,l,d,\"\\u21b1\",\"\\\\Rsh\");a(i,l,d,\"\\u21ca\",\"\\\\downdownarrows\");a(i,l,d,\"\\u21be\",\"\\\\upharpoonright\");a(i,l,d,\"\\u21c2\",\"\\\\downharpoonright\");a(i,l,d,\"\\u21dd\",\"\\\\rightsquigarrow\");a(i,l,d,\"\\u21dd\",\"\\\\leadsto\");a(i,l,d,\"\\u21db\",\"\\\\Rrightarrow\");a(i,l,d,\"\\u21be\",\"\\\\restriction\");a(i,s,y,\"\\u2018\",\"`\");a(i,s,y,\"$\",\"\\\\$\");a(n,s,y,\"$\",\"\\\\$\");a(i,s,y,\"%\",\"\\\\%\");a(n,s,y,\"%\",\"\\\\%\");a(i,s,y,\"_\",\"\\\\_\");a(n,s,y,\"_\",\"\\\\_\");a(i,s,y,\"\\u2220\",\"\\\\angle\");a(i,s,y,\"\\u221e\",\"\\\\infty\");a(i,s,y,\"\\u2032\",\"\\\\prime\");a(i,s,y,\"\\u25b3\",\"\\\\triangle\");a(i,s,y,\"\\u0393\",\"\\\\Gamma\");a(i,s,y,\"\\u0394\",\"\\\\Delta\");a(i,s,y,\"\\u0398\",\"\\\\Theta\");a(i,s,y,\"\\u039b\",\"\\\\Lambda\");a(i,s,y,\"\\u039e\",\"\\\\Xi\");a(i,s,y,\"\\u03a0\",\"\\\\Pi\");a(i,s,y,\"\\u03a3\",\"\\\\Sigma\");a(i,s,y,\"\\u03a5\",\"\\\\Upsilon\");a(i,s,y,\"\\u03a6\",\"\\\\Phi\");a(i,s,y,\"\\u03a8\",\"\\\\Psi\");a(i,s,y,\"\\u03a9\",\"\\\\Omega\");a(i,s,y,\"\\xac\",\"\\\\neg\");a(i,s,y,\"\\xac\",\"\\\\lnot\");a(i,s,y,\"\\u22a4\",\"\\\\top\");a(i,s,y,\"\\u22a5\",\"\\\\bot\");a(i,s,y,\"\\u2205\",\"\\\\emptyset\");a(i,l,y,\"\\u2205\",\"\\\\varnothing\");a(i,s,c,\"\\u03b1\",\"\\\\alpha\");a(i,s,c,\"\\u03b2\",\"\\\\beta\");a(i,s,c,\"\\u03b3\",\"\\\\gamma\");a(i,s,c,\"\\u03b4\",\"\\\\delta\");a(i,s,c,\"\\u03f5\",\"\\\\epsilon\");a(i,s,c,\"\\u03b6\",\"\\\\zeta\");a(i,s,c,\"\\u03b7\",\"\\\\eta\");a(i,s,c,\"\\u03b8\",\"\\\\theta\");a(i,s,c,\"\\u03b9\",\"\\\\iota\");a(i,s,c,\"\\u03ba\",\"\\\\kappa\");a(i,s,c,\"\\u03bb\",\"\\\\lambda\");a(i,s,c,\"\\u03bc\",\"\\\\mu\");a(i,s,c,\"\\u03bd\",\"\\\\nu\");a(i,s,c,\"\\u03be\",\"\\\\xi\");a(i,s,c,\"o\",\"\\\\omicron\");a(i,s,c,\"\\u03c0\",\"\\\\pi\");a(i,s,c,\"\\u03c1\",\"\\\\rho\");a(i,s,c,\"\\u03c3\",\"\\\\sigma\");a(i,s,c,\"\\u03c4\",\"\\\\tau\");a(i,s,c,\"\\u03c5\",\"\\\\upsilon\");a(i,s,c,\"\\u03d5\",\"\\\\phi\");a(i,s,c,\"\\u03c7\",\"\\\\chi\");a(i,s,c,\"\\u03c8\",\"\\\\psi\");a(i,s,c,\"\\u03c9\",\"\\\\omega\");a(i,s,c,\"\\u03b5\",\"\\\\varepsilon\");a(i,s,c,\"\\u03d1\",\"\\\\vartheta\");a(i,s,c,\"\\u03d6\",\"\\\\varpi\");a(i,s,c,\"\\u03f1\",\"\\\\varrho\");a(i,s,c,\"\\u03c2\",\"\\\\varsigma\");a(i,s,c,\"\\u03c6\",\"\\\\varphi\");a(i,s,u,\"\\u2217\",\"*\");a(i,s,u,\"+\",\"+\");a(i,s,u,\"\\u2212\",\"-\");a(i,s,u,\"\\u22c5\",\"\\\\cdot\");a(i,s,u,\"\\u2218\",\"\\\\circ\");a(i,s,u,\"\\xf7\",\"\\\\div\");a(i,s,u,\"\\xb1\",\"\\\\pm\");a(i,s,u,\"\\xd7\",\"\\\\times\");a(i,s,u,\"\\u2229\",\"\\\\cap\");a(i,s,u,\"\\u222a\",\"\\\\cup\");a(i,s,u,\"\\u2216\",\"\\\\setminus\");a(i,s,u,\"\\u2227\",\"\\\\land\");a(i,s,u,\"\\u2228\",\"\\\\lor\");a(i,s,u,\"\\u2227\",\"\\\\wedge\");a(i,s,u,\"\\u2228\",\"\\\\vee\");a(i,s,y,\"\\u221a\",\"\\\\surd\");a(i,s,f,\"(\",\"(\");a(i,s,f,\"[\",\"[\");a(i,s,f,\"\\u27e8\",\"\\\\langle\");a(i,s,f,\"\\u2223\",\"\\\\lvert\");a(i,s,f,\"\\u2225\",\"\\\\lVert\");a(i,s,p,\")\",\")\");a(i,s,p,\"]\",\"]\");a(i,s,p,\"?\",\"?\");a(i,s,p,\"!\",\"!\");a(i,s,p,\"\\u27e9\",\"\\\\rangle\");a(i,s,p,\"\\u2223\",\"\\\\rvert\");a(i,s,p,\"\\u2225\",\"\\\\rVert\");a(i,s,d,\"=\",\"=\");a(i,s,d,\"<\",\"<\");a(i,s,d,\">\",\">\");a(i,s,d,\":\",\":\");a(i,s,d,\"\\u2248\",\"\\\\approx\");a(i,s,d,\"\\u2245\",\"\\\\cong\");a(i,s,d,\"\\u2265\",\"\\\\ge\");a(i,s,d,\"\\u2265\",\"\\\\geq\");a(i,s,d,\"\\u2190\",\"\\\\gets\");a(i,s,d,\">\",\"\\\\gt\");a(i,s,d,\"\\u2208\",\"\\\\in\");a(i,s,d,\"\\u2209\",\"\\\\notin\");a(i,s,d,\"\\u2282\",\"\\\\subset\");a(i,s,d,\"\\u2283\",\"\\\\supset\");a(i,s,d,\"\\u2286\",\"\\\\subseteq\");a(i,s,d,\"\\u2287\",\"\\\\supseteq\");a(i,l,d,\"\\u2288\",\"\\\\nsubseteq\");a(i,l,d,\"\\u2289\",\"\\\\nsupseteq\");a(i,s,d,\"\\u22a8\",\"\\\\models\");a(i,s,d,\"\\u2190\",\"\\\\leftarrow\");a(i,s,d,\"\\u2264\",\"\\\\le\");a(i,s,d,\"\\u2264\",\"\\\\leq\");a(i,s,d,\"<\",\"\\\\lt\");a(i,s,d,\"\\u2260\",\"\\\\ne\");a(i,s,d,\"\\u2260\",\"\\\\neq\");a(i,s,d,\"\\u2192\",\"\\\\rightarrow\");a(i,s,d,\"\\u2192\",\"\\\\to\");a(i,l,d,\"\\u2271\",\"\\\\ngeq\");a(i,l,d,\"\\u2270\",\"\\\\nleq\");a(i,s,g,null,\"\\\\!\");a(i,s,g,\"\\xa0\",\"\\\\ \");a(i,s,g,\"\\xa0\",\"~\");a(i,s,g,null,\"\\\\,\");a(i,s,g,null,\"\\\\:\");a(i,s,g,null,\"\\\\;\");a(i,s,g,null,\"\\\\enspace\");a(i,s,g,null,\"\\\\qquad\");a(i,s,g,null,\"\\\\quad\");a(i,s,g,\"\\xa0\",\"\\\\space\");a(i,s,v,\",\",\",\");a(i,s,v,\";\",\";\");a(i,s,v,\":\",\"\\\\colon\");a(i,l,u,\"\\u22bc\",\"\\\\barwedge\");a(i,l,u,\"\\u22bb\",\"\\\\veebar\");a(i,s,u,\"\\u2299\",\"\\\\odot\");a(i,s,u,\"\\u2295\",\"\\\\oplus\");a(i,s,u,\"\\u2297\",\"\\\\otimes\");a(i,s,y,\"\\u2202\",\"\\\\partial\");a(i,s,u,\"\\u2298\",\"\\\\oslash\");a(i,l,u,\"\\u229a\",\"\\\\circledcirc\");a(i,l,u,\"\\u22a1\",\"\\\\boxdot\");a(i,s,u,\"\\u25b3\",\"\\\\bigtriangleup\");a(i,s,u,\"\\u25bd\",\"\\\\bigtriangledown\");a(i,s,u,\"\\u2020\",\"\\\\dagger\");a(i,s,u,\"\\u22c4\",\"\\\\diamond\");a(i,s,u,\"\\u22c6\",\"\\\\star\");a(i,s,u,\"\\u25c3\",\"\\\\triangleleft\");a(i,s,u,\"\\u25b9\",\"\\\\triangleright\");a(i,s,f,\"{\",\"\\\\{\");a(n,s,y,\"{\",\"\\\\{\");a(i,s,p,\"}\",\"\\\\}\");a(n,s,y,\"}\",\"\\\\}\");a(i,s,f,\"{\",\"\\\\lbrace\");a(i,s,p,\"}\",\"\\\\rbrace\");a(i,s,f,\"[\",\"\\\\lbrack\");a(i,s,p,\"]\",\"\\\\rbrack\");a(i,s,f,\"\\u230a\",\"\\\\lfloor\");a(i,s,p,\"\\u230b\",\"\\\\rfloor\");a(i,s,f,\"\\u2308\",\"\\\\lceil\");a(i,s,p,\"\\u2309\",\"\\\\rceil\");a(i,s,y,\"\\\\\",\"\\\\backslash\");a(i,s,y,\"\\u2223\",\"|\");a(i,s,y,\"\\u2223\",\"\\\\vert\");a(i,s,y,\"\\u2225\",\"\\\\|\");a(i,s,y,\"\\u2225\",\"\\\\Vert\");a(i,s,d,\"\\u2191\",\"\\\\uparrow\");a(i,s,d,\"\\u21d1\",\"\\\\Uparrow\");a(i,s,d,\"\\u2193\",\"\\\\downarrow\");a(i,s,d,\"\\u21d3\",\"\\\\Downarrow\");a(i,s,d,\"\\u2195\",\"\\\\updownarrow\");a(i,s,d,\"\\u21d5\",\"\\\\Updownarrow\");a(i,i,m,\"\\u2210\",\"\\\\coprod\");a(i,i,m,\"\\u22c1\",\"\\\\bigvee\");a(i,i,m,\"\\u22c0\",\"\\\\bigwedge\");a(i,i,m,\"\\u2a04\",\"\\\\biguplus\");a(i,i,m,\"\\u22c2\",\"\\\\bigcap\");a(i,i,m,\"\\u22c3\",\"\\\\bigcup\");a(i,i,m,\"\\u222b\",\"\\\\int\");a(i,i,m,\"\\u222b\",\"\\\\intop\");a(i,i,m,\"\\u222c\",\"\\\\iint\");a(i,i,m,\"\\u222d\",\"\\\\iiint\");a(i,i,m,\"\\u220f\",\"\\\\prod\");a(i,i,m,\"\\u2211\",\"\\\\sum\");a(i,i,m,\"\\u2a02\",\"\\\\bigotimes\");a(i,i,m,\"\\u2a01\",\"\\\\bigoplus\");a(i,i,m,\"\\u2a00\",\"\\\\bigodot\");a(i,i,m,\"\\u222e\",\"\\\\oint\");a(i,i,m,\"\\u2a06\",\"\\\\bigsqcup\");a(i,i,m,\"\\u222b\",\"\\\\smallint\");a(n,s,h,\"\\u2026\",\"\\\\textellipsis\");a(i,s,h,\"\\u2026\",\"\\\\mathellipsis\");a(n,s,h,\"\\u2026\",\"\\\\ldots\");a(i,s,h,\"\\u2026\",\"\\\\ldots\");a(i,s,h,\"\\u22ef\",\"\\\\cdots\");a(i,s,h,\"\\u22f1\",\"\\\\ddots\");a(i,s,y,\"\\u22ee\",\"\\\\vdots\");a(i,s,o,\"\\xb4\",\"\\\\acute\");a(i,s,o,\"`\",\"\\\\grave\");a(i,s,o,\"\\xa8\",\"\\\\ddot\");a(i,s,o,\"~\",\"\\\\tilde\");a(i,s,o,\"\\xaf\",\"\\\\bar\");a(i,s,o,\"\\u02d8\",\"\\\\breve\");a(i,s,o,\"\\u02c7\",\"\\\\check\");a(i,s,o,\"^\",\"\\\\hat\");a(i,s,o,\"\\u20d7\",\"\\\\vec\");a(i,s,o,\"\\u02d9\",\"\\\\dot\");a(i,s,c,\"\\u0131\",\"\\\\imath\");a(i,s,c,\"\\u0237\",\"\\\\jmath\");a(n,s,y,\"\\u2013\",\"--\");a(n,s,y,\"\\u2014\",\"---\");a(n,s,y,\"\\u2018\",\"`\");a(n,s,y,\"\\u2019\",\"'\");a(n,s,y,\"\\u201c\",\"``\");a(n,s,y,\"\\u201d\",\"''\");a(i,s,y,\"\\xb0\",\"\\\\degree\");a(n,s,y,\"\\xb0\",\"\\\\degree\");a(i,s,c,\"\\xa3\",\"\\\\pounds\");a(i,l,y,\"\\u2720\",\"\\\\maltese\");a(n,l,y,\"\\u2720\",\"\\\\maltese\");a(n,s,g,\"\\xa0\",\"\\\\ \");a(n,s,g,\"\\xa0\",\" \");a(n,s,g,\"\\xa0\",\"~\");var x;var b;var w='0123456789/@.\"';for(x=0;x<w.length;x++){b=w.charAt(x);a(i,s,y,b,b)}var k='0123456789!@*()-=+[]\";:?/.,';for(x=0;x<k.length;x++){b=k.charAt(x);a(n,s,y,b,b)}var z=\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";for(x=0;x<z.length;x++){b=z.charAt(x);a(i,s,c,b,b);a(n,s,y,b,b)}for(x=192;x<=214;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}for(x=216;x<=246;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}for(x=248;x<=255;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}for(x=1040;x<=1103;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}a(n,s,y,\"\\u2013\",\"\\u2013\");a(n,s,y,\"\\u2014\",\"\\u2014\");a(n,s,y,\"\\u2018\",\"\\u2018\");a(n,s,y,\"\\u2019\",\"\\u2019\");a(n,s,y,\"\\u201c\",\"\\u201c\");a(n,s,y,\"\\u201d\",\"\\u201d\")},{}],24:[function(e,t,r){var a=/[\\uAC00-\\uD7AF]/;var i=/[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\u4E00-\\u9FAF]|[\\uAC00-\\uD7AF]/;t.exports={cjkRegex:i,hangulRegex:a}},{}],25:[function(e,t,r){var a=Array.prototype.indexOf;var i=function(e,t){if(e==null){return-1}if(a&&e.indexOf===a){return e.indexOf(t)}var r=0;var i=e.length;for(;r<i;r++){if(e[r]===t){return r}}return-1};var n=function(e,t){return i(e,t)!==-1};var s=function(e,t){return e===undefined?t:e};var l=/([A-Z])/g;var o=function(e){return e.replace(l,\"-$1\").toLowerCase()};var u={\"&\":\"&amp;\",\">\":\"&gt;\",\"<\":\"&lt;\",'\"':\"&quot;\",\"'\":\"&#x27;\"};var p=/[&><\"']/g;function h(e){return u[e]}function c(e){return(\"\"+e).replace(p,h)}var m;if(typeof document!==\"undefined\"){var f=document.createElement(\"span\");if(\"textContent\"in f){m=function(e,t){e.textContent=t}}else{m=function(e,t){e.innerText=t}}}function v(e){m(e,\"\")}t.exports={contains:n,deflt:s,escape:c,hyphenate:o,indexOf:i,setTextContent:m,clearNode:v}},{}]},{},[1])(1)});\n\n})($tw.node ? $tw.fakeDocument : window.document)\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/katex/katex.min.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-BoldItalic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-BoldItalic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff": {
            "text": "d09GRgABAAAAAFDoAA8AAAAAisgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAABQzAAAABwAAAAcZO5Rv09TLzIAAAHMAAAAUwAAAGBFTFlvY21hcAAAAxwAAAENAAAB2hl2CkxjdnQgAAAKVAAAADAAAAA6Aj0OXWZwZ20AAAQsAAAFpwAAC5fYFNvwZ2FzcAAAUMQAAAAIAAAACAAAABBnbHlmAAALiAAAQLwAAG24OzmZwWhlYWQAAAFYAAAAMQAAADYE/Tv8aGhlYQAAAYwAAAAgAAAAJANwAZVobXR4AAACIAAAAPkAAAIA6qUKsWxvY2EAAAqEAAABAgAAAQInMQuybWF4cAAAAawAAAAgAAAAIAGOAdFuYW1lAABMRAAAAycAAAfpdukdb3Bvc3QAAE9sAAABWAAAAeZ7DzOacHJlcAAACdQAAAB+AAAAipKM/Mp42mNgZGBgAOJTmS9K4/ltvjLJM78AijBc3F6zGEb/s/kvzaTItA3I5WAAAwCMkg3DAAAAeNpjYGRgYNr2X5ohion3n83/N0yKDEARFNAAAIwfBgYAAQAAAIAAfgAFAAAAAAACACAAMAB3AAAAcQEhAAAAAHjaY2BivM84gYGVgYGpi2kPAwNDD4RmfMBgyMjEgAQaGBjeCzC8eQvjB6S5pjA4MCi8/8+s8N+CIYppG8NTBQaG/jhmoO71TMlAJQoMjABOexJKAHjaLdFLasJQGIbhX3FowEspiVR7iZUoVqx1YKV0IA6K4EhKB04EC3UNLkgcqZMuoBtwUnAFXYIjwbbviV/gyck5+fKfS+xgLeNKDLkdzJKebTFHGV2EuMAaC7yhjwpWeMSXsjVM0UYdRT3fqe/ahvJrfVtR+6yMmyuLCBnkca6c678on0OANM7QUbajnJu3kPT+jhpPq7bLNrHTmquYqOZG71Lo4VL9UHtJaX435uGB+nuNt9XewFcu0JivNRVPa4ozLfzgXmc60/nH9c1+P/CJEQZ4Qg9jLPGq+qH2XMK15ol0Xm5vt7jSebv9fSfq/G/Yu9k/hFQ0GQAAAHjaY2BgYGaAYBkGRgYQuALkMYL5LAw7gLQWgwKQxcVQz7CA0ZDJnJmFmY2Zg5mLmYd5CvMM5tnM85gXMC9mXsa8kv2xgtH7////A/UoQNUywNVORlK7lHkF+yOg2r9AxY//H/5v/E/vb9rf1L8pf5P/Jv258+fmn+t/rv658ufSn4t/LvyY8cBLoAHqNiIBIxsDXAMjE5BgQlcA9DILKxs7BycXNw8vH7+AoJCwiKiYuISklLSMrJy8gqKSsoqqmrqGppa2jq6evoGhkbGJqZm5haWVtY2tnb2Do5Ozi6ubu4enl7ePr59/QGBQcEhoWHhEZFR0TGxcfEJiEgMloBKZk0y8vhQEEwBVBkyrAAAAeNqtVvlz00YUlnwkTkKOkoMW9VixcZraK5NSCAZMCJJlF9zDuVoJSivFTnof0DLD3+C/5sm0M/Q3/rR+b2WbQJJ2hmkmo/ft7qd995PJUIKMvcAPhWg9M2a2WjS2cy+gyxathtGh6O0FlCnGfxeMgtHpyH3LtskIyfBkvW+Yhhe5DpmKRHToUEaJrqDnbcqt3OuvmpOe3/G37we2tK1eIKjdDmzaDC1BVUbVMBRJSoq7tIqtwUrQGp+vMfN5OxAwohcLmmwHEXYEn00yWme0HllRGIYWmeUwlGS0g4MwdCirBO7JFWMYlPfaAeWlS2PShfkhmZFDOSVhl+gm+X1X8EmqnJ849zuULdnY90RP9HB3spYvwq2tIGpb8XYYyBCnmzsBjix2aqDZobyica/cNzJpaMawlK5EiKUbU2b/kMwO7qd8yaFxJdjIKa/zLGfsC76BNqOQKVFdG1lQ/fEpw/Pdkj0K9oR6OfiT6S1mGSZ48DgSfk/GnAgdKcPiaJKwYOTQSsoWZVxPVUyd8jot4y3DeuHa0ZfOKO1Qf2oy6we2Je2wZDs0rZJMxqduXHdoRoEoBJ3x7vLrANINaZpX21hNY+XQLK6Z0yERiEAHemnGi0QvEjSDoDk0p1q7QZLr1sNlmj6QTxx6Q7W2gtZOumnZ2J/X+2dVYsx6e0EyO4v8xS7NlrlIUbpucoYf03iQuYRMZIvtIOHgwVu3h/Sy2pIt8doQW+k5v4La550QnjRhfxO7L6fqlAQmhjEvES2PjI2+aZo6V/PKSIyMvxvQrHSFT1MoykkojlwRQf1fc3OmMWO4bi9Kzo6V6XHZuoAwLcC3+bJDiyoxWS4hzizPqSTL8k2V5Fi+pZI8y/MqGWNpqWSc5dsqKbB8RyUTLD9QokLmA4dKGjx0qKzBI4feVQZNl1/Dxvdg47u4W8BGljZsZHkBNrKUsJHlMmxkWYSNLFdgI8v3YSPLVdjIUilR06XmKKidi4THJng6HWgfxfVWUeSUyUEnXUQRN8UpmZBxVfIY+1cGSsmhtVF6zCW6WEry5qIfYAyxgx8ejczx40tKXNH2fgSe6R9Xgg47UTnvG0t/GvxX35DV5JK5CI8uw38YfLK9KOy46tAVVTlXc2j9v6gowg7oV5ESY6koKqLJzYtQ3un1mrKJbg8w1jEW0dHrprm4AP1VTJklNAj+NYUmvPJBryKFqPVw17UXx6KS3kE53AmWoIj7fXMreJoRWWE9zaxkz4cuz8ACpqnUbNlA93mvtlLEcygd9hkv6krKenEXxxkvtoAjnkGvvhPDJAxm2UAOJTQ04BeE1oL7TlAi02mXQ4Mj9nkUVP7YrbiRPSpqI/Bsp1PuhS6k/DrHQGAnvzKIgawhNDf0NhXQPEI0ZJOVcbZqOmTswCCixm5QETV8G9niwaZgW4YhHytidefo1zdN1EkVPMiM5DK+ObDAG6Ym4s/zqy4OU7mhpKhw1BoYzLWwklTMBTTgrdF2++j25svsEzm3FVXLJ17qKrpW7kExFwusPc5BWipUAdUbVdgwulxcEqVeQZOk19UxNDDDX6MUm/9X9bH5PF9qEiPkSL7tcGCjz8EY+t9g/205CMDAj5HLTbi8mDYnvu7ow/kKXUYvfnzK/h3MXHNhnq4A31V0FaLFUfMRV9HAp2wYp08UlyO1AD9VfcwZgM8ATAafq76pd9oAemeLOT7ANnMY7DCHwS5zGOwx5zbAF8xh8CVzGATMYRAyxwO4xxwG95nD4CvmMHjAnAbA18xh8A1zGETMYRAzxwXYZw6DDnMYdJnD4EDR9VGYD3lBG0DfanQL6DtdT1hsYvG9ohsj9g+80OwfNWL2Txox9WdFtRH1F15o6q8aMfU3jZj6UNHNEfURLzT1d42Y+odGTH2snk7kMsMfT26ZCgeUXW4/GX5TnH8AK3FNYwB42mPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGdicNkkwMmiBGJu5ORg5ICxRNjCL3WkXMwMDIwMnkM3htIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOblYOTR2sH4v3UDS+9GJqA+1hQXAHdZJMsAAHjaY2DAACFA6MPgw5TMwMiUzLiegfG/MpMoAwNT3v+vTCmMO/7/+i8D4gMAsZsKpAAAABYAFgAWABYAWgCmAZICTgLoA6wD6AQuBGoFKgVwBawFzAXsBiAGcAbEB1IH8ghoCRYJpgoCCooLIgtYC54L6AwwDHgM/g2KDhQOog8WD24QbhEUEcoSbBK6ExgTqBQiFL4VTBWgFhQWuhesGFAY1BlSGcwaZhr+G4QcMBx4HKYc5B0oHUYdiB5sHxIfkCBGILIhZiJGIsgjICOaJDokgCVkJhImXCb+J3AoEiiwKUApzio0KuArhCwULMItYC2GLhAucC6qLqou6i9OL3gvpC/oMEowdjC2MPAxKDFeMaox7DJiMsYzWDO6NBg0dDUKNZA2EjZCNnQ2pja6Ns423AAAeNq1vQmcXFd5J3rPufeeuy916y61V9de3dVrrb13qSW1pO7WbtluSZYsS7bl8SbbwIAJJIQJmwnv/ZJMIIRkyBCbNdgBTDIz7wVIZvjlFwgBwgTe8HthJhszSZhkJpAVt953zr1VXVoMZDLPslp3Obfqnu98y///ne+c5jDX5DjuN7HH8ZzEyS8SAXF4ttGKtWK1VqzU/OkrzSb2XvqzJvplDnNf4DjUx49xFpfmJvvjhowRhzY5hLhz8CneloB4Hp/jMHbxtm3baTs94RdFEjTi7W4rh1wLmahYnUHVeA55LikVq5129wuFVJAXCYlN24SIS4n8WCqZL+BOcgzlmz/1gilL1gs/uXs3ziVTY/lkegze42l0FP0EfpxzuAo31s+WUzFJoG/CI/oq8FKch7bribojkAT97qbvuZKJJPjG2jSqVXu3Xno6N5GXCC/LblyWeSL98k3neM3NpD3jvnNJSZal5LlL5k3nHLxXGeTz3/Bl7nHuddw7+vZkFmOeQwp39W6sKvzm1gvZE3f3JzSkqJxyRgRhGVuWIcFb4x0iYIztLVPGHKee05Gquup2ul+n11kbDqMrNzx5Y9Odfuapa0+/6trrnnrdA1cu3HPnHce29leCSuC191dskm302qt8r9VZRZ12qQZi73WXULcHf5p55BLPjc5aTT+gp61mAAKyUMkzEb2Zk0BcpIE8IhEqs2qt3e20bz4v1qoVejF8Br6sjCVeRxsoNjmZDMjMjCCoWJlUBKvdooeqZ7jYSmdIIlUqolhjEkmY8AJGCTIzjaWogd1q7x3PkwDlW20Uo38/S1SJl0Eab0UY6X5KwvnKhhiP69aj4ughlpOuGTUTsIiJSISkDALff4A2If+coBuOpd/GrDH8AL3mucXrH0Vfxp/kTnEXuYe47f6R7XVNFjj+csfksdCaK+STIrTehLYCzwnXOAFDLx6DIeMxegw+APF3cTyPzsEBOn7xwuGNqUYuA5bhNVBkBr0a2IWXRz6Vu0QsRH+WijOoU6uCgoKdsMGBq35+eK23imDQ6GC24Lksoj8Dn7RLbFQ8N/BbQbtao8PZ66IvZ1J+xhRicwSpZxt+d3Ifr8heTkKaE++tEsV2/ZwVtHgtmZntnuENPJbnlUxcVvhAuZiR/yeKmSVD6vrqL87WkAQD/B/SuWzgxqSChu85z3tHqpOHWuMGShdV2c9kMC/F71xwTM3M+7bXk9CXsGgEx6ZOd5GETDGbJg6S1UJa4IOTqUc/wCuxtGFPpfTPFprGvfdqOU7kStd/Cezpk2DnY1yb2+BOc0v9+ek0GPiRMsYCBoMHixM4dBkkjoW7OEHA50VCb50oFg6sLy1OThTaxXatIhGfOoJek0kKfA8z/GqvWqqGguqB+vJsILrcQNKEk0gvFPzoM+1aUSJUtiDUUq2MND7tVSo5Wc95lQsCaJJpwV/b9MAb+Vh1LTjY/VNe+VCtzMsZr14ek/SMW3/Q5lWMFZH+nJ05qiDs1w7NHFb5oP4KGfPx4pRKf+ZeuuiZIvToN8Q4PRBfWiXOj81tKsirbk4f1rFb3azbaaWupNMKqFrm+nfQn4LubXJnuavcuf7dWwhJd6YwRvcctgwQ0NUJUM4lJPLiJtVTLPDXOEmKPDj4bqqlyN6iZiWeI0gUfXH7wQdOnlhbWZhvzU1PVsv5bFEB1aVOvRnkUKivfgCCWkMgHOpeuj0qM+Yy6E0qLBAwFSuV4gwKfQYT9xpzyDOoWCqyoaBuiK/WigMNbvbuXe45frZY9Eq2PicFOV5FYMayOd8ljkOSKbuZluRyUdPLriV2be8hQ2st15ZN1VPKGT74ySREpYyBdWVaRqlqEge8kcJarYK+cPCcam42O3NjpVj5iN47IeUQImIsrku8NC/xjbfM6cp4xs477rG03Na1zuxkITtbc0oZ/dCJRQNNKanptjJbFnZfWJhLCv74ioWmQZAc4p5HeXQPxII0l+9nAoRZoMToKZAwk7WBtxvJIg/B0RmRI8hlYNidIsjot8dSupUea3lVS1Wz3tgEDy4ywLHmmKitNk6uZn0FZTTHsNcbJmLf+xz4qhfBZgpcrp+OQ1Sk3ws37orCNOKO5woYzEF0qTaHfiTy/eEb0D8udSToxaolGMnT95ytzqY1wapiIbavGrOy2cYVq5PForv6qUd+9jVzZVfEWYGo2uS+ZO3wc4ef7KuhDO6Cd3kA3iXLJfoeR1/gLnodFIxDxxvsLeJtqih7vS9W2+xlOm14t+pdNYvXMqfPb88djtueoxg/miGNieM+flcOCx58+zueODynO74mn3vfWOPyzpl5k37vAe4s+k0sc09wZ/q6CG6YW+mBpmOIwFWIwAE1UnRORFTPwS+z8YjzEG5d5u75iyMNMIRW8/KlY9tLC/Wq7zqEav4qonFSyiDiZhF4V+qHWwNIEeRwy2fwpjaNS8UsyiDf9XyIiixO9pZRt72C2qViCD+oEbAP6NHm1HaoNuBWcwUto2q7U/197I/5GN4FT84JKrETlnAJzelJC1mBrcj6XIniHhxY9o2tkJnUZvlbGqJvmvG4mc3KMUODmJQESQaOp+EOShFT0V0nEEjWB+vXjJiczVpx99bGskFS/O2ah+Ne5U6ib+I4l+em+hNeDFCQAOgI4U2QKwgVBuQyFfQ5kH2c224XS+1SgZBUoxJGPKqXDKB0mOv1hq4EjTsxz0AnTpAgICdOIMOLOXCSSMDJw6nUqVNYakv41KlU6hex3KT4CHEfvf5KdIl7O5fiCv0cvAV+ihkCjRwut404AFcil0IpgbiNQjEU/56zB9fE1LGHlEKtkhtvb3QUolk6j01kFFzRrBTytaWp/lmHN001piJRS4hZ+r0LyEJfQWcAVQ90/wyVzQ7V/aNxh+q+0+4VoGOFhSy6N5fbfS9KtBW1GdnOZ+CRbXhvjYv37chqAD5vl4v00d7gNUF/PlNNj03U8mOVjVy9OpavVtjzixA7KWaJU/9j8DhyBOhJCo8fQpymcHEU56HXwW3C3gXbBQvYlFTf9DDa/aSsnfZMQRbxx0zPM3lZfOmYBb0CeU5c/2v0B/hREGaVq/SLlALcFEt8tO15XtWrTNcLjAyweBpFVCZjEHpAMSPz9hSiwrXSh8enUmRh8vzjp8gE6U2f33hLb395YlERF/attUwDn8wgbebCv37Nx2zEDi69S9HedOLKkVNI/5mdo//CxKEcL8Mb/DrEwwrX6TftUA4ioq6Yw9fghLIWUNCzoIsmD/qQzyYT8ZhlcBVUISCdONhsiL668Grw5rEQDUiFSEcZ2nqrYxLTNYXVqqwZKbXbIY6/+7uBQzpdxAvj6AOqYXo2QPnjlpZ86W94KZPSFIgwn/k05rPsPdvwLl+D91zinnixizgRRXShTOCEFzmI0uDB+Ac4UWRSZfIVzgLkMQXwXJXRZiIPH3S7djt9iAidVqWcSSdcVeKW0JIU9pF1cYm6tQExYhAeiNLANxf2ECd452qpCDEfhvChRPZgq1zjt5/y1LLbnn/t/Q84s4qEMTF332ooWPidYNmPnd3fy2Etjd6ZS3a3HGN7LVtY6eba0/eKgD4dRTLHyqJBRNOxRfJLTreRLy0cnBZjTiJDZTMJmOYb0KUTFM9swhhKNhKJi3ixjgRe2JQRqKzEEei7KIg8AHACwiDiZQA2AyEA8qHM1Mcwxgf3Ly+15xrj5SIMg8SdQCeUSArMkUcYUfKDgTQisDJA4BT5hUrKwM5QKPQCQ96hdr8uyPKTY9PjOPGqWffUBJnTETZec8fdr1Bw1vfGlPKZs2XlwIw4XhLjimgWOu5iLLPay9Lgg4Q8+rWxVKmlx5G4NTZ2dikh1ueJk5APnNs/r5MAoLfqlg/FEzPLwD2krKsQwHJqDoRdcKib5wVZ93LMRrMggr8AbZ/jetzB/norC8HQghZ40wFCcgRGixfAQfHoCkjI2wLz4MiOjAgxyXazyXFNwM3w8FyhUtop1FXw1L0BbAAdKTET7nUd5kCWAAnGhh7bG5i6VIvR0PhnoBFEIdX6G99oixhJ3xAMHftq3ZImJyiYm5isV+E+77+z8MbCfYgpBEDk84gYYjKloUuihiRr92d5uSvz53kRNCej/BXqtr7QRqG9t8EffQ1w1zYwcHMaITEGpn4IFITybxUMahLCjwQSA9TLcRLYE0eDEjAIgd/hKLGWaffPc4T4BAxraqQ5krjHvnf7nX6AuP37VpZac1ONscDUFQmCzDZVr15zoDOgIqXI74EIW4u4u4hCik0Jd7M3hINU8SAUDvyyC5L8zvydcxXd3q5LuuOIGgwbsUTB9jK5cuxnARuKGGK8//rXIbWxWCt2NpD6Q+ffNKPnfC8vY1ss7du/MLNP4edUETi18PM/J5gQkIFegLXIAgj4I6Jnufevm2TrgQvZ2VzGdzQB20Lo66ciO2xxh7ij/U2A4TgBRAJTZAtMl/oeGQyTB8OjKFdCLAwQIpwDafnCdgcGaXW5fahzqDGeScUsiLwt1KLCQVEwY1bGvAvzQZLXi4JFFC6ifA3zVnGgCAynArcI7RGGe21pO5PQhTLJKpY7ve0oSOsfdexevaXjTH6ql8rHpMsXN9f2+a3jfCIzp4DVB6WY71XwY4vdRAYZVdEiAhG1Y92yKMjjWK231h1/ejU/ZRJkvv9HL/x4o7H7tYXpiemugZ2g0snXfI9FaPBTf43+MwCMBo01DugdS44JO9B7g7phhnhC+/Ip9kinkoFlKDLXQA3CInGExUsh+x/oCIigsCcBCjs98vkJknpFXf4TRU66giZiLJVg+I7GwPvbY/H3ECSpzcmpT7+nKWuOImNRFyenBM/WZUmzVGss8e/+B9FlNMYA7xS89zcghk9yXe4gt9JfLMOoukgQYWR5ThQGA8rCOkGCMIjr873+au/g/MFOe3YmnaL8bYQVhi9LsX3kRSPGB96SpdzgR6VdLUKg8ZtdnloHXCkVGetbfNWxsnz43rVJDKiTJzNrQI+NV33gVQZG6v4WzeLI+vg0OrBx3+Htu7dfvXBU1DZmFo4pJfT5/iWknV2a3G9RJ4ixs69OnEA+cPbsARni8cR6nF2X4muFcrtZrTebu+9dn9ZjldkD0557iOn5dKTnk9w692hflYATViHQUP5g0ZAMQgHrvwpRhuMJIIy9UEsTEGGUgZBMm3FhNHr5djt9dbxSqUxMFCSSbqCQF4cUOso7SAO9vykC9fhqRJlzKDKCHoQg9JbF+xrzmaaOEtl9V07NH8Wx4zPz2bETtUw2SGSIVmkWjzjNQr2a2lKUuuulJ/ZbMsI64ueS6eZ+KTm3kj28eOyTnv/67Skb+G8jyOZ81dIynccQKpjV43nPHZeVWs70LKUP8mJYFT0PWDWgaHOQELaHOg/IqlwuF6N07BC5xm6HYgf/oodCOFvd/e4ersXc84DnT7LvKnGZfhKu8Ji/OPxKtF2p3vpF8T3RkdClsoC996W9XiVbqy3U0hrAeLNA88nDr/8VbTFfW5451quZVkqVYgWTj2LNAtdDX8FTwPHbLyYZ1d56wQcF0QZ4HdhNGtD7Tfx75xOTDP9XQo9XZmynPGSQWBJ99BXfkCSy+2FBAx9/WpRl09fxM+8kaEI/a7k8/1VBy2n8V3nBtUwd332v8Gs6x+RT5X4DfRP9AicDIt/YeqEErxPnMMByzN9DX2EnlFIaRAcvA3D4Egc2hs/QodphzY7u9HVFUVzF7cadMHsf8pRqECWO6WtWs+hNudTuU6lsNiF89j+kcuj1KWAvivKvlVRSQZabVG+QUQpklEA0Sz+QUTRkccRkdFN2YCCj0J34AsMTQpgg6K3iXqW6EDdliaAzgq4Lux8mkmQAiQUJ7f6ehlU7TkWkZ3Thqzzv5jQmIY3KZxW+4gv4IW6C63CP9LUy9Ni3aaIW3ksPjRtDNEPADQTwM48N8zXUaMVzYMOuCC/8cs280WY7fcVzvanpIiW3UU+GOZYoHzDIvoTgkeorqCubLmGHq4+dfLI7XlPjx+MYyXbgm4oYPG0p4DseOBhI2ensjxRSifxYO4e+tdyfKszNFmStsazkc5YsmbmSe8+abIi2WAlMw8vndh9IjrGZlDEqi8nrf4/+C8hintvk+v2VBOAHiFiihCSRdUxiHeMkwAqXB3mSgHaQnIOoniTbyXqxDurbkkmGpVeHPRxm9+BChHm8KFaPujUWzMsRKqIMEFpAg8m3PEiMwHvzcn2utWmqxemDGceUkpl+b2NjvCV73Yqe9oW40T5iBab44DPosVJaVE05lS+lhYSQQc3XvqCBK73+quX6sU6hfrS5qbqi0zn8+GOH6youqlhyDb2t80j76Ok7N1QsGAfGG/Av1pgNUQ/2l/hxbgVQZK/f7q9iWSrQvMUmmBXPyfx9QCwgEgqYpwpL80TAzA9v1CrVwK22bQXEUQm9TQOFIW8NMMsMKoEYSKvZikLi0KcD73DYZAwVkeMHLt+uFZmI3GYHpIM+m4w5wvFjPiZa3JKk/xN4DY+1uEawd/y44MSScdRb4EWHzIuuwC/00EcQSieEa0IivW37aRlLOUvQJBr5xvL5MSAYkiZYWRnLaar930WCbAFnkyx597vfBeDy70AHMm97WgOJPB3OgcRAJn8AuHqKW+SOcPv6q0AycBkiIwhFpHyLXBLox1OSZWxR6Mfv0BwyuH6OO7C+b7XdnJuBp6fmC3UFnMoIg4gNkE6XTWTMRoiBWChCwRbiq5RLdMPkQJyih/CcXqmFnMILAo8ArFUM9MyP61Jx3oo1J7TWEdXaP6UlpQPrq6tScbK6hGcL4pGDh45qWMyWhgwDfY4XVcF2KBzmsTKVKxTHNxxRvbOXTTWWFDql+XGElVYhN7373vqiiD6PBITVWebj6oAX/gjwQo873D/owQ2wIkDBgKmvcRQs0bSct8VmgKJDUQzhMYOBlCtUStm0C0QYvGVPBigoFvcgAFhNlHvwh6RgQDbDpEk3Cm8mQslHfux15215tUU5nQhWYfoyxoLtJmUlnu91po6szK5NLbl+whFeof3Ga177CR1XwZNJiqPGxbPnRF1SJC1dXZk69ENPbCysTzuG5W8/zOwCIhn6Y9CBHHjPRr8+Mt4iG28yGO96tVKEVrleoSLRsY7iRiziy+E4D6e64tQBNFCsBZ2s+rYUd11HtoHYoB9+vbJ/ZuPQ7D710e0F0pptd5aPICmX0Oh4aQmTsRdsrZ1/21vvXDYxmtx5k4p2O8h8mo1LHN73r+F9T6JC3zQg2FWAFa8iSR5wwR5EQHDfVzlZlCT5Kqg5gVG7pAFuZIHSoCPF2Iu9pSJJUs5yimIq2+kwVsyPPC7KQBH/Ec+n4PmF8HlAiP/oDxi8+q3PAuYEKideHvmM0Sd3dnb6zvGj25sH9vsxN1WKecmf0EmWBvkBE/VZsI288wpQ0laYlB65Xo0uD50WyxANskhsnOM+IV6mWp8NfgdICQauCioo4W+80kk4hBKW8Iryyu/AESmzS8TcPeITjQSJREBieCUnIUMSXw3kBTywkS9+wg4cHs7ezq4ogf25iQYc8vTaW0SDyFnbIFQ3Quzhw/j/KYz/Ee7NfXUw/oNAPz0YvBG5SSA3dU9uCshN3uEAfMkg8ZmhxH+wJ3b69qGDB9aDgZS1/0Up5zDlUqUbhOtT4War9bnE744K9w9fc5NwX7OhEqIYv02FmkilErcT6qduFuqniWAZ4AlHpIm4Kvi4v2Tziu/ceiFBAVwiBrDyIOIgAqSHZwqc7YQNGpwkQ3yQqKBe1gkqoROk0v0+rQGRho9w7ImdvnnkkOe1xv1adaKggmwrQ9QRTsfkUfNmr1m7AWmEabwSiJ/OVzJ6XQpRGXqktm/jlYGu+/f3bXlhhiBZNfYcqYx5Mz0ni8tHl+Zcv5Hys1lg8eaHfDuuS6YXGJnaU/e0FhdaZ64puCJY9sCzypJTyC0g7cfPHH9DUm1NA6gQjaouGUnXxs+bshbyCupnvwt6e5470t+YAA8H8UQAxiNolyRQdlYvgqjb1VUZEIiyYxqYGTc8fZ47f8epkyeOHz14oDCeKMTGAf9YtADkpngbemSqW1TZaDTt7IXh1t712F6yvjSa9PP2rtMALCqS68EzMVe84zToHM8u/DpcUWhI/uDwErvCw5XBQ78+uAKiiMeEMBbLybyEqRpaBC58/OPwrECnZYeXdjtwiVigpYOnPv/5wRUmw8Mgw38PMqxz4/0qmyDbYZFKAIUTd+i8tilSedW5emGiU6hKJDmQ0Y0SEkMYFxsUAVw0VIesrK2tEMcT3v8cVngR4cEV6AUxY2mZ9SENloYJJkQlcAXeWE47ukQ5EcsvXOaa3Fx/uj6GBR4GmAfcwAvXKJgcuP69nHWlUq3WfoLSCGfPg4SD1GCpltvlqFepW6n9li/wuu35aeMpRSIx2U8gMXZhdWNHw5nAywmF+mpGRM0mzi9LiBBLg+j6Ox/sGNOLMxPETmazgWKa48rsc1+gNJZzWC75cliLsXVkfzMvsikVoEMABgSmljLBHCftqAqWJFOiUj7NnZ7xKrXJSqdQoX7wFkQQkkramQxaw4NxGPTQQn4eh3ihFGb/atN4BgGJisx7PIhR2BCXYgHa3vIohkA7d8VMh2wcor0GPTu4UZo45sTFmP8jhmLEiyTlSZluGp6xvRFMkZWRnoKTJ4+W0RPXRNOFoYuksrOzdvTt0EstkVFA6zyLX9bmqvrcRvEV7EGmd0Cr0X9lY3v+RZ8yxCjc5GCAgWJfJSjivRQ0gT85D6Ps0hmcPG0A2PPay7TY6auF+uFKrDJLE0XhJFqkmTfGYQtUARAy82qRiOEYWJX40IM0x16qfJ2mA8vU3UPE/eLjiw3wuzwgwLFkckyReCzhS5hl2Hc7Ew1Cm4k6ofEVOi9I8pgM9ONzEOjGRJ31WaeJBOjzGW6zf2ifCTpPATDmMeGvacCqgBpDl2h4pO6LF87JiE1HwcNnuDN3nD66efDA8lKrOTleLhUL6WRHp4nEUAloRRob+aC5V6gQ+aNYK4cGKR3mtgAVM3IdunqSRTc3iDV92xW7Ky4RquMIzfuiqGmrHeLYvmX5tiOs7xfoMZIKFaIv66RSkNDoDRxgy8tKWNelH367KyAh/W8OGSqtFEx7Ft7twF1gW5id/cGXpYnH36AkEsobHp+QvvwHo/fQ50BuLgjvb9lcxWp/qQzC3ZfBHGojwvE3GhSlCuScIoMvcQkV2za3PV4eT4xX6HRM5rbOPUybO/lRejXq14cz3DWwpBEv37jRm79a9FWcfq3Ge3EZXLlsvid05XLck1WSygkJYHNP6+Ht23lxDC22dn9uRkO/casXxzFoKCbj+9ClOW13eejBMTd//a/RV/Cj4G8aLKe4l18JC+lo+rlRTxZYqm84ozzMMotgAbSEKItG0qOUND1Quf+0vpidnk4c+tFDiWnU0ifGGxN2WpPS2USi3VQ0UcTbBSQlp77136c8Xfem/vu3cnEdK3b+l2JPT+UyRMjUp55+qjDJOBHlGP8ZxnCOW6VZf06ilbT8JbLHjcKIIw8iztLCfIdNpq38y0JVoVHnBmTXof4ddZug981oHjKqyYlm0+ACI0y1UkiIx/cAsy/L6bFxJ7veQNutGtan3CBdIQfXE4EU8z/aGycry8srZLyH9pBdEmIUktbb/Zi5PuFqlojezVP/hn5xYlkFtoeQusz6OX/9VWw8iqB7D/etzUks8utIEMcQEvjIxxU4kRcE8Sr1CU9xUS0wy4ih8+GIpftF2oYXAUW/bKOdvrKQzk1UHBrvRHD5VVocSX+C14+SSqzekYom8PkqIDocpcGXEJtbiFrlEAOBmE0toM8afUnCmWxzX2LZMww8HamCZ9ZyuVdmXhGYJmirE+SmBMyrgmvhsZyAPFXDvK7TO6/SIKLhxUUkahOpew4d+NZUqCeJn19sxJaW8Ju0wNzurx5LrbU0XRQ9pU4sCOqoHndFe2t1eTuz2mI8+vp3sAo6c4K7yH2xb44hoq4hgfQQx0TpgijHOYFwnHCVUzkiqOSSMpJb4SG6iuc1GbPavHSYT21/nwfksxoCWjJ4mgufBYWFx4jAXbvdc6C48k74GAzU4CEgkCmOu+vMHaegAycObxxcX1potyYbADT12yR2hkMxrGylh+GfsHIq9FXR9N8MqobJnaFDig9VPZzlu9E/Pfzq1MyGKfkAupCIEiqLUbZIK41UYJU2nqvdE4O4as6IUxMDqNmWJxuNSTkzqUitW2GnvtpwM9OlXFyiU6PJXHxlUUnHkkCpIEi60/uuyp2eXFfRpwfuCscx+hR8YcGz4uXmYB76O6ye425uq3/YBMbArXYgeNIZNT4Mh6wyY3hIZ0lFCIv+FidJ0aGwfXTr0MGVpfZcNagV5cGkRuDnURQG3SjahekgMsiyBtGsW1TgXh3WM62gYZaW0Z82m4aj+ODBzYrcLmqGIckBLY0W5aasSInztZ6KbSVuHT8k15cMjT+/LsUuLwoW+EPgQzxRkglo9+MTifG6bQhvEBa20WfX70eqL40RPi4+JxJBUSTViJ+o5mUt4Zua6sR4c7GaqRy6oKAqmFoKK3HxVL0KIUGRnQfiuSs5TcA5ZN4JckyBT/ifYCsL3P19bQwEzdsAkwYkPi/QQh6Er1LYHM3HE0TBJ8egZ7o/FrXgrr1Mk52+FgA9f1clFqdp7C6DCaWRCrDOyCT9zaQ9NmTnb1CMg49hKZqNRbJJiJ+tjs8lvjJK0B8L+fg3jDiwPvS5Yh7ETcHYympMuJGV73YiFi4yfbr+EvgMG+RwiGv1Z10EoHszzD/zO/C5tFOD6UXwoPDEIe5QfaLWqdRqCp1X3OMK0aqHKssu3EQE6X1WvEK1hxIIVogatoIj9PcMSwcJRA5182NHnpQQCzvo3M7ghoDk6SwZI9lpWUDsriiBq4sQ9Iefl9buc/XHTkvPfziMPdGNF1ITTwIoKs5RfDRXtAvvfAHuGyYRWR7v+t+hv4O+r1O+tIg4rCKBwwCREPR/wIUhgCSF7bXlbnt6slbJpH0vnI92Ce09tZlOt9Olc0fhuhMAQzyTRgNA9xA0amg4dUGF8v9YgYWNmLgADJJfEBwDW74lm++WRFrhZMSdtTUsmeKqaEp4bTUeNwj20dFtGGS8ElhibzP+nYYKbmPi287WgmgFAH4EQdEVS9Cl3eu7LwEkAOUwRQgSSNIFi0pEsBimvv53DFPfxc33O3cCJBzLZQBQg/8gEEEIvkZTrugczcEaW5RaJPH21ubqcq89Xl8CAgSeGBUHQJDyJp4VVAyyILRsbQAtGog5Ab408NXU7YIqUDfihZCbOWMqQbreAL0uFXPI64mTk0sZmVjY80Rd5pUqQlWFl3XR87BF5ExJznlCH1hxLOUZcQM6GbdEfUMXrThPva6BAysAegXYucTvvvQfO5ICTtSQJl6oyEiufnRCMsCSFKnzHxHPl0A00DCwhIO/+vCW7qzds2V4nrF1z5qjbz38qwcFkFkm4qY73EK/e/TIfFm7lZuGpg9QekBNd7iddqVSyXeqVQalB2iMdntm1EKothRd6nvXUGlY485EZSE3jwd8DG6toWk0g2ieyQ8n8qQmRWl+sNiRQIiBJ0PkOnqUalFWTpumZiaVMcU8ug38LB0059b6gQ+HwrFjfg58ZDzuOCWBOCbA6xC6vfaawV+9GsYrplAlHndSqUS2y5dihswEdfWq8PQPIcrjsJSjpb/Ha/DfcRCF7cZMwvgHYna1TeW1b7KqCXvi2hkVl4wG0gLicWB9dbnb8XvlugIRabQSDJRoL8Mf+ZRiWAzXpEJpM/IOjiSiZQ0EOjkS6T/GQjswC/+s77vhFMCxo+BaxhSBHMYbuuIY4E7eo6sxyfOh0S2k44Ozn5kbTAxQ11IUkKq91+N5/90p2m/qUSQzBh5n7jOzH9xLGCFuFrr+X0AWa9wv9M0AfIyLaBEvLwzmCkrQCORzFTAaLzxAMXGYUKLI6GyUT0oP5pCHTeH/x16mbb8SNqPrhb5HO4BbJtxZ49b8zLsqyZE8FQd6+DJxKiewQl4LjeYGmL0fMhUY3glR//3RYCWK8WSx1PB+FWsY3Cna/T1R/4vRvDwCZ2dDgPk14twYtLDEy5oMt3bXiTM5OcjGH9wQDULl+nvXP4r+EH+Sy3PT/QZbELUZFR5cZoUHd40UHsCNPJcvTPZo1UFQrcXsSJGkkRycK33LlsBNiI8/Pqh3c8iJkydPEMc/JbjoYfSIYAl4WNSWkfiX/g+wgqiueq8uOtZniwWehIF/qF4cKTbggkExGlerLsZtT5PQJsau5Wny7ifBLH6SFkG/dAw+HA4s/DFRDj97HPrahc/2uWZ/Jg5G5EKAAo8NnQ1r3gH60RoH1l+O9dfn/E6hHPb3loxYACS9Hwx650KPHUGMnaKFw/gJXspkJUBhL4071JbvRZ9HHwH9LXNe38G00OIpmkLituuTBT6sugZQiEdm3ovVkolKe2Vmq+glXpYP2bU4UhVFlYlI0OMI/ocDmV7h34YvYVSWPRURW7VjosCvoVUeXgnOCD4U1ntc/wX0levf/F517/5Nde93hmXviHsB3Y8u4A9yWa7UH0uwghoTocM3189kUjBa0dK54fqV1rBy2WvSpBHqlxKWlh47kEkJsm4Zg7UzJfTzqbyorTXuOZDRMLJMNVo9UwjrZ2av/z3W0a8A3jzEfbdvTwPSWrQw0L5NHV7oSEi2agriQCrcVU7kQAelywDfGfZKbMk0y3dOCGdC02ENdz1qLl77/u2noH3z+7anNVXskM0NJmn+cPZ7PDSsw9riZHnwCJ0JTCLuwDoQjOZko1RIBY4tE3B6C+qgKHxI3bLIH2QjKEACTx+tXQE8xargw5kVWgsfdEqMiIQ5l9f7OS9/ZkFeuktG4yQnKY5QnqzbvITUleP7zzaOHJ2csMSpklKECCfw5v8tv2HB61an1sFNNfN+1s0jdaMtPv6oiGQ1npaxbPEyIuW7lkudvCPwYrIONM2X0m8s8xUzlquXMoSOo3D979Gfgz1Mcovce7ZeKIBY3QTCfBqJQqeNiagC+SLCZvrWywDB6BxWgWU0IsntTcQmKFcD2iYBj05yzI3frg1CZtiQsugkna/ywDh6czOFvOeYuiRyk2gynOmvDVw4HysN+TJLcPSGFQDMak3Uo6WxIYcG6aLK/jbPvLguonw+CNDqEvXXSqmWyLZmfL2F1Hzm9MbBheKiKdgzE+3jZNIH5w3+nNqjlMvKiHrrixeJDwA4Fls5lxH6E7Xp/3fprkpaeu1k5zS1uHWQ5ZfRr3Iz3BPDnHaMxTnMA1qgGicI4gODzFyCYnHuPEF7Aho240Xhsdu3Y2sTxmvlYibhOrrCzaAZaVAIweQQpoLDgr4VRN1XNJPXGpnnI6h09s2d+buAaTvzfdejhc8qSiuB2erf1285xPLiQlydJq+/98S+dQ0hPe5l/XzOo4UE2rHFtVNtS8GSq7nnQ3+QB38ggx5VuXnus+H6MYe6doIkbhbxUp6tQEjfcnFUh4YZlcFCy8QWLZUIWT5dvhF+buPlG9LlG+yQlZYlKXoYv11rbtgYdG/QFuxcq1erZbddKlKKyxYP5Vnh/lDZYq1BQdLKYFF8L5JsrzOYNc1fu2u1qQwUTZXXfH91TXCU7r5aobt+x8HWgTLYZmxFj2ni7L6v7fyLMfKWgZLFdrGRzChYDhRpwk4+cnjxrsMkzr+66fBIPjH0veiLoGd1rkkz4gQhwibG2LQIMCMO8QRdGkwCM7c2cGbj4+PN8eZyzS3V5mRabdcbVFnR+ZCAmkuEg25Y0NHrBjRdyGry/1ZVyZlL4Jf0d/8Mb51dXnIZ/nE079z81tMpc32+9BGlUiGJuVpKQ7+C8NW7JD1mwgMzK/MawB45rnoTcyf3F8dXH83EPtiYVlAtSWEj/EUv4oe4Je7TfRUMCEFsY6sRKa4sDtZJ0ZUEYA9saZq9JQH6IzscW4MRwcphy+B7tbR+wM/8QT6Ohgi9UPULlfFKJa7QAgaK3hlYaA2NscYcfhaNzEhFMzSFGyZUG0gxHiPWhdUpP5b1nCxWOybav4/OSe3bv7RIZ093P2UqDllc6nWJg56JaXKu5jTm+UQ88DK+LYgTQi7Llubu/rdwNpUYDp1tDXhamJe9nkYvoX/LrXOnuAe4f9UPCJK5AGG5n8e8tIQU4TJAGzFaBtqmuXpB4i9DTAzTcIm9jFxii9qmco5TlOQWB5pBKx5ThGVMRx8b6GHk0G7/0E7fuXjPnXcc3T50MDjlN8rlokan8EIz7A3LlEEPCUgyPJlBLIR2g0UWeUPCVAzXI66FGW44cQdrkSAqAJqL7yUBhxMey1eOTFUNZbpRmkm7aQsAuCC5wX1b4xVFcCxJRFbePZzqH68c3D1YRXygx0UhFifBmdl6NyW36ryM8+PPy9eKKSsg0w9371Ww7SHnwIW4RFJjWTebgvgrl6bX77VFVY6l6bIHQT+wPFvdv78+N1l0bEHOVhITWnWiNjsbd+uziEzvfhZJVpBVtV4lQ8TASTDsCGSI+doDtI7OBve2hDiZZkwFWeDlayMOL0IxCTajyHHkrBquVtq/vrpSqbt+qdouOGyiuU2zeaNRle6GMAirLt0zYTCpHJHYcBWCRNMa4b2qEKyOBFdsrptK5kogInB/vxbWHro+4jP5XsWQML36paCa1tDn9uLrpYtVjHfip7Lxp6kTHBQdXnuFmElMOQn1wgV6WaI+kNYtfAFf4TTwgq3+bBoY6N4WKwFz8DusHIzODQ/s1K+0Cl65KA20KjJMPsxlRqtpwy0iBpZZ/a1iwi8Vg2ThRxXjmfV9vo8uXYzxeGWZ2eFzPp4JcnnPz+d3mZMLkLTMCoeefTa0PGngszPo1fC+Kni3I/2NSSSICyZbbC0hYGAC5q+NvD3AhB3w32zZ9cA6dK3Tmihk046tLelLNET5DcR6EXaiCa8dhO47KmkIJ8mGGdnhwvka3YYEiaxjfrL4C0FWLqSkgCZR0eYR3+d5zYy7Cf1BukrGbU8faS7aEsqwnk6M5V96Ju/T3T88z7G6v/h5JGfDUqk/+SvvUKmI/bRlJseonhrQo38APb2DO9E/ehzJyqnpyZorMq4ny8z+jS2s4mgVAPhUoKkQmEkY7hG3fWS9v7Yy35mbGcsngpgFqPsOdIdGF0IVR9JNELmAz/h5FKYqS4P9EmhyyUKDddHD5dKj5ZVsksALuj0Up8m6Bx+iuSavUIhtOMtqf4mdfQQ8qqnPakkCn1EYowmnBx4UwBuPFegZljVhoUs0gUfLK+gyS9WxXBModWx/7IRxJjqjxRNg9GtmUZYLY2ss44Rp+QArgrFEgxa2aMILLywvhjy5BUL5TyC/Alfrlw26gccmRYJh1cuwVsfE2wXfj/+ESJI31s2FSXdWbkijEVXw1t7YOsJPKRLxd3/MFyX1J2HYWcWbYu9imhDKKHKWJoHAOlm9xvVvc3QR2ye4s9wXw7AQz6UAz9+1WqFJ1c2jbejZkTS7Kt90dSd8IK/R+RL+nAi6zttbhq4QuppyR6UMweQGpG6CTqQNW3Hf84l+jTYO8eEee7tNS4jP1HWe5c6eOX340Pq+hueXypWC75nU97GgUYqWGcZKIc1njo8qyHBpnRem40In2IqoXBjRX+7GjwW29/YgJjqxmCPGgvE6McRWYT5JxlcqfgABIQYN/rmhZCRwj7FCTbj1wjY2fao7gQ6yhCCtB2mNJ7H8tDieDJrCG3+Y3QdXWeKfun/csBbq5J6d213j9mIHjGOfe384LCoAGSARmJUnDk4UVp1Ib6cVRHEkYphHBuZJ01DSDTS8wu21AJN+ucb90mDmJRE2427Timbx1lZc14folKgW1agWlHrjoDUYiB8sHHWikAZhCXw1Qstrk9lJcxiORPXWcMQCGHorCFj2xAkj6NwQigT11lCUgwAGLj/08W3A5V8DXO5z5dFajMSwFiOJtssTEzfXYgwzk9AXkUGUQVLgFfuPzdXvj+Pk3D+zzaX2iRjGOlo/3Osc3pjPds0ses2a13qV7SxOX4rjYvsBu2xv379w6o7eyoVCENZdCNdL6M/Ri9wUxJ2fCYdUk+CFux2sSKwiVQILj86iMZ/geAUrwCVoPntkZBmqSLKVjSw8OeHMeNQYXPpgdCOe9XIPwRgvzpcLrhuPj98wxlnUG7DX4ewh3RnkphEVb2D34fgqvQP1LY8S+eXL6ZwInGJkRP/lCLNnwyu5IinVsiGNP6Pi/Lnzw+H8DpJ+aoTWgwyL10u4ADKcABku9ns2EF+uiwidpB7IJ7FHJMONEs7DmDv8dr1aqZRLlf0Rn6QbK1FKycL2cP33cB+PdjGacowAa6+7wpZwmKj46HFsCgc7spPwLBIGof8UxiAsLx44/qiBTp/oWPJyTkH5O5Xu5lfPvUZB40RzHNV66ct7sebiBdJ49JicWj2NjZVYNpi9JB2jfiEBI/dN6GOL+1jkF1SEuQwCP079ApxI4QnoSB5uj4Vrma/SSUXunEz9LIX1EezaI+uFwZrnl29ICf1om4jPYxxOqNg3tAYHQRcRt7hWwfVqxUqDTtvGc6ILyjOYkyvRzfMIm8AdIDkWBYcQ93dwmBE/cGktQTJePCWghldriqi/Rhxv9zeD4L65OUCyzwOxFnkiKcQ50DB1L+fHeVGLH54i+1YhZFO3nNKp/cM/tJYW7P+3wP5Pcqf7J1IuK/QWKdgZVGon9iq1mZWEG0cl2dL46FgE2HN068D+laXxWnEsCaCMO4lO0rXflWa42U+EXegWXbRqp9u6gayPLiIbVP+ERd2lQQnEMFmGhB8qBIc3vHvytbtwRlkCXy+pdlS+HYDLjMfnOvmUkZi5N3cqhkXr4uFDM3Sxkj4JbSQl6clECjaWgpiu6fLYkUa+DnfButS42JwTdUmPe7Jm6a6h2JKt5NbkmKy60600MGcvLq50HJCsYO9n9aAgu0/jCW6Re11fzycwL/RUMDPK/mmRfAVEBIPGSXSlUJxpB79D9cLeGmxekUQshwZY+slh45dpx7Yf6LZnp0vFTMr32N42i2gxlPKAZA4n/hmVj1JnjBsMtiCINjfrddE7k/bl/YuVEkFzMxBrFOMSkmzXpjzoheFuA3ffjaTFJQ0p8icNb99OpbRKnniEl7NA35stQ6EEaG5udJOBf/aouO+4I8ksbl//B4jbz3M97odCw7KaGehbHglYYvVQ6eEVKboSeXO65x4AI8KEILEMBvVYDD8VRu8N3LbJisyGotL8cqXWrlRYTqwSJr9qe6Ude5yRAum9euohhmIb7mGZpsAMUZlbfyQQ8ZAnAmiWV7eS4RXw4yCwNb+aAbYYE1OHrerDPxKxQwDGP/vu3JyW3XkYUTdNpfXsswbDNInr30XfBtl06D5K42zxrBjVfEgkhJEIuazco8N1oDPVbpkmv1C4dyMNNRaaQGyDjhlUurnWI5zJHhZ3/L7vp1LtLlZcVTVV1VVwt51KBq54+jQrHI97U1NeYgq0iNZ0oOdpYEHPPic4dAcJR3juWSQBYcJRRcczz6wefWakhsOGvnwX+nKJO9Dfd/p4veqKEit7p+kUUGgBK8JgMSXdfU6SkhK4jLN3HznUX12Yh+iStQxZ5C6hSzfOToQUyGPj0Y12a9rbM4IuqumwTEhEkyJPKrmsHIIM90AD32LSGfsSFRVcqHZ92xPuOElYLBLEPEI8eBAhiDuSLgPSgfOMxAIWeY7VD2eymOhy3CceUXzqCWXJSyccYlkZCV2OeayAgbKi1Ni/9USkjZ1I8bLJC7rk3VEGv0P4yQ/V+bANLSeOIfTsBwSN8FiKJe9LSBIvZB8wTBkp2pk7n0XRGnS2twuTa7Qm864zpSIFw5vwxuhIuEaPkhbGQkc2drl44eSJrc39+xbnJyfmqy5bk8n4FF0YP4NG1mQOah+8oNcuDXQompIFsRV9VvsQDLAMuHD6ARbyh/QhS4i63u0E6WZxLFqjefoU5aAZqTUr5Rxy8vTeXO5YYXYO5VI9aEp3gvmQb8S1SVPK50UpbnofMpSqYQnkyBGUK68PF21GRRDowAHEl2hGcGT6d98+XC8eRrRo2aD8z7UxWnfV2VlEa7mBTlA5pq5nmK3dSWuMwNdw2wwIiTxb47sjhJvFSdIga1GuTXrL4+1yCIBo5cPNa2pKksemzmgNDa19iIp7Q8nRYIajHe9C1JSlBhuu9Pzz1n47nQJPMlhKI8ccDPZxkPDKgu7FZdv/wJ68Eikkvg3XDwP1m836Xs4BzCG1k0ISoTe90AjdzLDiGsHgB+q/KYra9EdriJb6qqOiwvbuneL9SblVDbJpj4cREpfpsiLEFUHPvg7yWefet1cfsRzVR1gvWx9h31wf4b58fYT9A9ZH2DfXR1DgtM6tL4Ddv6uckkaKUEGfR/dSGa2QED3XZCMgtUaTg3A+T8s1heAl/4vKSDmfGE8VypPe/0UX/FCgQ7Dytkcaf6go0Yo7YiLR9ByAVcG3fC8T7rkyO0tLJOAa0SRV5SVeeePlRrqgsqDY7kQ1Es3rv4S+jj/JrXGv79vzzXIxIWJx1dT5cJZgikkXixzY7zVaOQADL14miG2ZQNBwz4R0vx4JP2rLhU2v3NqUTbbNzUzUqpV4DLzqGlpjk23RFhk0XuBwl9khLqPlt2t0S7411By6XQu54f6elMf66KNpJy6O1bMPu4B6rS2hi1Va36birrBl8ch9N4VTsqLImccshLW6LNc1jAyaCgaqKtgH1fsfEPMK4HFeFZ2YqMIBUvLk/gfOSUhR6oqSv/8ymU6IJDEl33cFsDr3R9c/isZBdgrd308RBY7tBH3zdhJuuNkkHeUYRYt/RLcOFJRJHb8nlXqpQeJ02Q43F43DIbobwsqiKglI7CKMZvIZmsikhSsi4sTLtJwDhvUykzbddZamZwT++L612kRqvEBowoqVW4BgKGBtDoqfJRNTtArBmerd3h4JayjM7FVDdDbcWKx7UCjUsourCkL6CT6bwg44PJzK8sdMWl3ycKaeMSQqzkcsnopTEECevPVIBmRM8CdApMpUvfjmYkWhs9pZW1JpJFDKcEk9aNPiHcVzZSUtXrlPnkoApEhMk8v3C2lFdj2FhHt4oi+jF6GrFe5YX7VAqsVoDS0tbAho2o5tuG0wMhNuehLupIloUSN/ca8FXcKkNMvVZpFt9hgmCijOXEI0KDOJDHB+A1EBQOz5kiqWMoZgzdqGoJoGCvY14objsCu6oNErK/gSHo83bNM0tWAfL8mpwckScNyrABqfxVc4HSJl0Hf3tgg30HYr2dnbKiYq5StGbDbcgYPmY69mAANVsr7U+1xg0/0r9URuXvKzuOMnkFZ0U9OxJP3YhD+d5oZrD78AvjJD85tWuH4zSmraW3SWbUD6aN4+TvObve+VqT98+wR99WXS8ijMycP3z9K9nArAQad5ut0h3fcQ08qra6zmiosAJJtJSdG09EQ97zs2cIZZNMv2o/pHpt6v/IAJ93M/WJ5990H0x9dXQPdcTv0VEOxDk4iW/Yxu4zwoZ9190DGRzP+0aMUt9fAmrwNOXrB8oL8AGuxy4POiSZNZaPdF+Mxn4DNZ/RcK98KkO2HiveQ7/fjhBla7X4WPVN6KFN7xdYXfPIz+uGzHJTKOcMLWoId+wD73NPr89X/1Peqv0A9Qf7X7l7wsHf6nFGCh3U305esf+P/DXtEPZK+7//6fZrBMlsvo29c/ifcBlcv10yM1ZEystGrO5MwOT3UBFG8Pc+2e1lXkis89qxDJR98WzVgBMJZoa5mw9m93Hf3t9V8G2WTZXrB0W3Z0EQuYDRPiAh/ESLgsyoqgC3zTo5mWBh4sq2WEIjSF7iuryEn010xzbS3pxN004Q3n3Y4Bzpngy8Ug7qmqF086Jm8JWID/dZ4Wqu+ew9L1d30fX4S+py/aPfePc0Z49wPor65v4oehi4mb1tEBgWE78KLtEpDgG7873OicZiNZxnb3A82xWiLWHKsHsdcElp1KmVYST2cKiZiTKSRjjh6zUzbdxGn3DPrM9Z+DsUtwyb4vsn2v6c453JPwzQ8lKrHIFqKJ78E+h5GQd+9XFWl1eXlZMiTBsJQ3Om8WLR331EQQBDKfU31RmJrmRV/Jja61neXIx9MIzUJMud0SjQFYqd5uTeyXvji6PuPrlRIldA/cmZZuWRF70/IMxtOweMtyWOhrif0eiMdBBlVOfrGYsXkM7wZypEwq8B3qAsZohx1af4IZQpVaIIL/KoqWlMUqAar4fhvvXsD2+3mlQzcEbR4U/hbV+/gxhCSBCMJLv22pMkKyauGWYD3FGwpvvfA/FPz2r3Jsv57R9ZPHwX8CqXF1xM/edrHkcAUdbjVpQR+bdZAGNR7NwTpcb7D3THFQB3jzasrkcBXddLs2lQQBweGLYtx1FQUrcsIzZMn0EnJ4Yt260lLZW0Ln6+XJydQxumju/YaCQMoYg5Ql84opD05kxt1yrO7/cW4/6IHDgR70BtnATjeFWD4gVIwULchvDpkqdfWddrhekO23RIUQlTm2acF+zEHzC7zsiKIt5TwBL84jx5Zj/nsDRUrGdUfoINQRHD2elIDyh6X5lBsAM7FEZErC7j/s7kL8pSsqlUwcBgyj9qnYP9QIIpXd2Kk2nNOqRjUcM1op9megzxPcJnc/jNn5rc6UwcGYgdq4fgYNdkxeQYUbN4iMQnKLDxdLsisUQtBgHdlDiWb9pBzKosINu/oOYg/6Ei/TKj2JrvvaHW4ryUsGEb10pToTHAqqMfprFmLV4G0jh68IYqg43PL3skl4CE74MiZYFIimqYBQZVmxZdkOKVFhjJg82v1YXJN18byoy1pcFEdP3odMT2O7AoOd0V2BdVIsC4Z8494YdKzjbKy/z8YWt9/AIlaKvewGFt/4/X/SbhW3bk2BPrd3je0XBX34I7bWgHy8LTG/9bIrzFwGGlgh/zC/Pdhsh22HNY3q2IOIlSnVpv3Pjjqzv9lnFR0AD6//C8D5Q5a6+4SP8U//DMZrafnGJWf4wWQviw39a8WcKTGG+jSIX/FkEX9XFP6GRHu7I/Qn+DFuBd69xN4dHMPe/veRmw33QZbCzWuYrbFkc5WWEhZZJWu4ButdnRkVCTg40tqIifGkBQDZVehyD9Slk/ifonP4HSyXiSN6PLaa9vIUfvTAiuCSK9vthIKNYCzPW+dKz79vdHL/fc8LrwZB6HO+afhzGzK1LVou+Ycg8+PcBe4RsK0r954/OUvAtpxowfWw5MJrAe5tDXctlYpEoutRhyUYdJ8BijxK0UJj6BnEaLhYqgWdkUWYAJUggHrs1wPQGY5nfBilRMG6woovcjm6yBLPXzQwNi4swCHGy+zO53zFWML0l5gssJsXFzD95UC57BKOLyiKFJtXBXwF/mJn0ZFibN+OQV3GBYgIK3XFsuXxFYgOF4YVGsAV6L3lCdm2lPFleg/9yWJS1XRVTan8k/ziUtI14JiOcYXOmYGsLsAYb3jRGLvhqkD6ewluSHWxCYOwULTd7QxixmDRerhs/UYtGIB2lmddRUfLANOwk4gJKJ0ClnPvBTr06TTinYQDGlsoB7JCBEdAvDt2XBHxqGqIyvExl/rcmI4t9PVcEafVqaatvuMdIa0I1QK94x2qPTetpnExh2TFdSSZWO5q9YDL3zuqOPfy7oHqapIH0Oh6FtP3MZDFn4O+nwNZjGEqixt+Xcdgn/SRS3Q5XdjV7nCb8IFSgC0P2swgFlUp0RvMf9V/+FwyfeR+QW6kVdWNl2PUqYI1HzliEmwD1FKV/pxudA6rvKJmHNuO7trAppRkyY2ranoOMOFP7bxBtJ46mQja963mQLhaOdxhHQxd1IVY/tD05MFaOdfbUvDarBHLlWsHpxoHCjHagNiVquiWNZB7bvWJFenG32VCPm5QGfzv/JUlN6z7iD7/f/vSDsT9LjqGFgAjeBSXuuiGX1yGtlOj63/C72LgiJr472b9vC3QiMCwHk3m4WU/m5UN/d5ziRCIJM7dwYW/cGCSuxL9LjUx/F1qc52W14K/V8L/uB+4HRMOtKLtyMcRjXVz4X3u/wP4KGdXeNqtVL1OG0EQnjNghCMsaCJEky3tyD77DEUwiMgCWbKwIGAL0aHlvPYd2HfW3dqH+1SpUkZpU6fJK+QR8gAp8wop893ekmDCj0jwyrffzs58Mzszu0T03MiSQcmvSR81NmjJWNA4RfPGS41nKGe81XiWVozvGs/Ri9QrjdO0knqn8aKxNvdM4yytpkcaL9FS+ovGyzSf/gZmY3YBqw/KS4wNYvRD4xRljVWNZ+iNUdF4lsrGZ43naNv4qXGayqkTjRdT3dQnjbO0nn6t8RKx9HuNlymb/ko75NOQJhSQSz1ySCKCHNmUx1yhMsYGFRWy8Ge0S4JCpeth1YKmC4mHWVABkobCJmUeZLZoHWgPO1xx1bDHqQOeAaxoxx9OArfnSJaz86xSLm8UK2WrzHZF6PY81rJd4dmiwBqebWZuKlvrbM/hHqvZvCMGYNsDdRvUJ3SKeYLABEUqNAkUQIG3xclpezIUUeBKAckRNno0oj5M46XojfocoI5zeTCL5wAaQp3HVNmpqhPd76p4k7nue7LuBz3BKmaZVdnNUIq/XT+a+m6qY2UQV9JX2bdwAos2gSRGF+YjzD6q46rTxrUbK601VJCORRC6vscs09pkUnb5SPqO6yH/Y8tcyz9pqI9r0cIjmjTm2UJY8TDRdhzcDp1jvsQ6Ke82/PxvM0/7udBafErnur8CPEYqVQ5sj9Rp4qSN8e1ActWCjPbBMFAt+FDC4yuZwU5c0HCKowXUBYpUIWKuRKOP2VZ5C7XfEXBHsTEVm1DWDTyijA6UR2+KuTnFEGf+9rYzpyKb9ssQ1Rh/VzXKGb6x7E92uPJYo0OFJa5gRtVHIp4qlTBCsMV5GEIWwleouK7yXULkdUR614NTuPXFYbmtKIrMAZfOOb80cXu38w+9QtrmAiKeSBK7QiZypcOORCiCseiw+D1g+3wg/noJzEym7bhhotHyuzLigWAQ9F1beCFsR15HBEw6grUaTXYwFF6i3EwUCuzaxTUTMm3L+Ji7fX7WF0yFw1m9dsi4rGYcKYfVUim0A3coQzN0+3HcpYM6kvZPmb6P8Oke6l+5v5jTAHjabc7HTiNBEIDhv8aMzRBNjkvOcbABAwsLBjwmY3IODUbQEmMQGM5IPMhe9414nMU7zGEPlFT6qqpVqsbAi7/vRPgu3nIpGATIwyRIiHwsCiikiGJKKCVMGeVUUEkV1dRQSx31NNDID5popoVW2ming0666KaHXvroZ4BBhhjGZiR3O8ooY4wTY4JJpvjJNDP8YpY54syzwCIJHJIsscwKq6yxzgabpNhimx122WOfAw454pgTTjnjnAsuUWJIgA/JE1OCEpJ8saRACqVIiqWEP1IqYSmTcqmQSqmSan5LjdRKndRLgzSGXjLatmPOl3HbMxKNWbdP6vXm+sG9stT1S9arvLeoHbGy+j79/2TUd9x3wjfuu2Amlesqc/fuJquCa8q9SivjUBspbe7oW1eF9h6f9f1DJpC604HUs/bWYomIbzTo6kzuD//ahOMs+iZ8nU+GXVQUAAEAAf//AA8AAAABAAAAAMw9os8AAAAAxvkyTwAAAADRt3yg",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/latex-parser.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/katex/latex-parser.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for LaTeX. For example:\n\n```\n\t$$latex-goes-here$$\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except latex-parser \n\\rules only latex-parser \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"latex-parser\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$(?!\\$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = /\\$\\$/mg;\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext,\n\t\tdisplayMode;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tdisplayMode = text.indexOf('\\n') != -1;\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tdisplayMode = false;\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"latex\",\n\t\tattributes: {\n\t\t\ttext: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: text\n\t\t\t},\n\t\t\tdisplayMode: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: displayMode ? \"true\" : \"false\"\n\t\t\t}\n\t\t}\n\t}];\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/katex/latex-parser.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/plugins/tiddlywiki/katex/readme": {
            "title": "$:/plugins/tiddlywiki/katex/readme",
            "text": "This is a TiddlyWiki plugin for mathematical typesetting based on [[KaTeX from Khan Academy|http://khan.github.io/KaTeX/]].\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\nIt is currently based on KaTeX version 0.6.0. See https://github.com/Khan/KaTeX/releases for details of releases.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/katex]]\n"
        },
        "$:/plugins/tiddlywiki/katex/styles": {
            "title": "$:/plugins/tiddlywiki/katex/styles",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n/* KaTeX styles */\n\n{{$:/plugins/tiddlywiki/katex/katex.min.css}}\n\n/* Force text-rendering  (see https://github.com/Jermolene/TiddlyWiki5/issues/2500) */\n\n.katex {\n    text-rendering: auto;\n}\n\n/* Override font URLs */\n\n@font-face {\n\tfont-family: KaTeX_AMS;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Caligraphic;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Caligraphic;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Fraktur;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Fraktur;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Math;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_SansSerif;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Script;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size1;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size2;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size3;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size4;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Typewriter;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n"
        },
        "$:/plugins/tiddlywiki/katex/usage": {
            "title": "$:/plugins/tiddlywiki/katex/usage",
            "text": "The usual way to include ~LaTeX is to use `$$`. For example:\n\n```\n$$\\displaystyle f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi$$\n```\n\nSingle line equations will render in inline mode. If there are newlines between the `$$` delimiters, the equations will be rendered in display mode.\n\nThe underlying widget can also be used directly, giving more flexibility:\n\n```\n<$latex text=\"f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi\" displayMode=\"true\"></$latex>\n```\n\nThe KaTeX widget is provided under the name `<$latex>` and is also available under the alias `<$katex>`. It's better to use the generic `<$latex>` name unless you are running multiple ~LaTeX plugins and wish to specifically target KaTeX.\n"
        },
        "$:/plugins/tiddlywiki/katex/wrapper.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/katex/wrapper.js\ntype: application/javascript\nmodule-type: widget\n\nWrapper for `katex.min.js` that provides a `<$latex>` widget. It is also available under the alias `<$katex>`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar katex = require(\"$:/plugins/tiddlywiki/katex/katex.min.js\"),\n\tWidget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KaTeXWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKaTeXWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKaTeXWidget.prototype.render = function(parent,nextSibling) {\n\t// Housekeeping\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Get the source text\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\tvar displayMode = this.getAttribute(\"displayMode\",this.parseTreeNode.displayMode || \"false\") === \"true\";\n\t// Render it into a span\n\tvar span = this.document.createElement(\"span\"),\n\t\toptions = {throwOnError: false, displayMode: displayMode};\n\ttry {\n\t\tif(!this.document.isTiddlyWikiFakeDom) {\n\t\t\tkatex.render(text,span,options);\n\t\t} else {\n\t\t\tspan.innerHTML = katex.renderToString(text,options);\n\t\t}\n\t} catch(ex) {\n\t\tspan.className = \"tc-error\";\n\t\tspan.textContent = ex;\n\t}\n\t// Insert it into the DOM\n\tparent.insertBefore(span,nextSibling);\n\tthis.domNodes.push(span);\n};\n\n/*\nCompute the internal state of the widget\n*/\nKaTeXWidget.prototype.execute = function() {\n\t// Nothing to do for a katex widget\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKaTeXWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.latex = KaTeXWidget;\nexports.katex = KaTeXWidget;\n\n})();\n\n",
            "title": "$:/plugins/tiddlywiki/katex/wrapper.js",
            "type": "application/javascript",
            "module-type": "widget"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold",
            "list-after": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1",
            "list-after": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2",
            "list-after": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3",
            "list-after": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4",
            "list-after": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5",
            "list-after": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6",
            "list-after": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic",
            "list-after": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet",
            "list-after": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number",
            "list-after": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line",
            "list-after": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote",
            "list-after": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/config/markdown/dialect": {
            "title": "$:/config/markdown/dialect",
            "text": "Gruber"
        },
        "$:/language/Docs/Types/text/x-markdown": {
            "title": "$:/language/Docs/Types/text/x-markdown",
            "description": "Markdown",
            "name": "text/x-markdown",
            "group": "Text"
        },
        "$:/plugins/tiddlywiki/markdown/markdown.js": {
            "text": "// Released under MIT license\n// Copyright (c) 2009-2010 Dominic Baggott\n// Copyright (c) 2009-2010 Ash Berlin\n// Copyright (c) 2011 Christoph Dorn <christoph@christophdorn.com> (http://www.christophdorn.com)\n\n/*jshint browser:true, devel:true */\n\n(function( expose ) {\n\n/**\n *  class Markdown\n *\n *  Markdown processing in Javascript done right. We have very particular views\n *  on what constitutes 'right' which include:\n *\n *  - produces well-formed HTML (this means that em and strong nesting is\n *    important)\n *\n *  - has an intermediate representation to allow processing of parsed data (We\n *    in fact have two, both as [JsonML]: a markdown tree and an HTML tree).\n *\n *  - is easily extensible to add new dialects without having to rewrite the\n *    entire parsing mechanics\n *\n *  - has a good test suite\n *\n *  This implementation fulfills all of these (except that the test suite could\n *  do with expanding to automatically run all the fixtures from other Markdown\n *  implementations.)\n *\n *  ##### Intermediate Representation\n *\n *  *TODO* Talk about this :) Its JsonML, but document the node names we use.\n *\n *  [JsonML]: http://jsonml.org/ \"JSON Markup Language\"\n **/\nvar Markdown = expose.Markdown = function(dialect) {\n  switch (typeof dialect) {\n    case \"undefined\":\n      this.dialect = Markdown.dialects.Gruber;\n      break;\n    case \"object\":\n      this.dialect = dialect;\n      break;\n    default:\n      if ( dialect in Markdown.dialects ) {\n        this.dialect = Markdown.dialects[dialect];\n      }\n      else {\n        throw new Error(\"Unknown Markdown dialect '\" + String(dialect) + \"'\");\n      }\n      break;\n  }\n  this.em_state = [];\n  this.strong_state = [];\n  this.debug_indent = \"\";\n};\n\n/**\n *  parse( markdown, [dialect] ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *\n *  Parse `markdown` and return a markdown document as a Markdown.JsonML tree.\n **/\nexpose.parse = function( source, dialect ) {\n  // dialect will default if undefined\n  var md = new Markdown( dialect );\n  return md.toTree( source );\n};\n\n/**\n *  toHTML( markdown, [dialect]  ) -> String\n *  toHTML( md_tree ) -> String\n *  - markdown (String): markdown string to parse\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Take markdown (either as a string or as a JsonML tree) and run it through\n *  [[toHTMLTree]] then turn it into a well-formated HTML fragment.\n **/\nexpose.toHTML = function toHTML( source , dialect , options ) {\n  var input = expose.toHTMLTree( source , dialect , options );\n\n  return expose.renderJsonML( input );\n};\n\n/**\n *  toHTMLTree( markdown, [dialect] ) -> JsonML\n *  toHTMLTree( md_tree ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Turn markdown into HTML, represented as a JsonML tree. If a string is given\n *  to this function, it is first parsed into a markdown tree by calling\n *  [[parse]].\n **/\nexpose.toHTMLTree = function toHTMLTree( input, dialect , options ) {\n  // convert string input to an MD tree\n  if ( typeof input ===\"string\" ) input = this.parse( input, dialect );\n\n  // Now convert the MD tree to an HTML tree\n\n  // remove references from the tree\n  var attrs = extract_attr( input ),\n      refs = {};\n\n  if ( attrs && attrs.references ) {\n    refs = attrs.references;\n  }\n\n  var html = convert_tree_to_html( input, refs , options );\n  merge_text_nodes( html );\n  return html;\n};\n\n// For Spidermonkey based engines\nfunction mk_block_toSource() {\n  return \"Markdown.mk_block( \" +\n          uneval(this.toString()) +\n          \", \" +\n          uneval(this.trailing) +\n          \", \" +\n          uneval(this.lineNumber) +\n          \" )\";\n}\n\n// node\nfunction mk_block_inspect() {\n  var util = require(\"util\");\n  return \"Markdown.mk_block( \" +\n          util.inspect(this.toString()) +\n          \", \" +\n          util.inspect(this.trailing) +\n          \", \" +\n          util.inspect(this.lineNumber) +\n          \" )\";\n\n}\n\nvar mk_block = Markdown.mk_block = function(block, trail, line) {\n  // Be helpful for default case in tests.\n  if ( arguments.length == 1 ) trail = \"\\n\\n\";\n\n  var s = new String(block);\n  s.trailing = trail;\n  // To make it clear its not just a string\n  s.inspect = mk_block_inspect;\n  s.toSource = mk_block_toSource;\n\n  if ( line != undefined )\n    s.lineNumber = line;\n\n  return s;\n};\n\nfunction count_lines( str ) {\n  var n = 0, i = -1;\n  while ( ( i = str.indexOf(\"\\n\", i + 1) ) !== -1 ) n++;\n  return n;\n}\n\n// Internal - split source into rough blocks\nMarkdown.prototype.split_blocks = function splitBlocks( input, startLine ) {\n  input = input.replace(/(\\r\\n|\\n|\\r)/g, \"\\n\");\n  // [\\s\\S] matches _anything_ (newline or space)\n  // [^] is equivalent but doesn't work in IEs.\n  var re = /([\\s\\S]+?)($|\\n#|\\n(?:\\s*\\n|$)+)/g,\n      blocks = [],\n      m;\n\n  var line_no = 1;\n\n  if ( ( m = /^(\\s*\\n)/.exec(input) ) != null ) {\n    // skip (but count) leading blank lines\n    line_no += count_lines( m[0] );\n    re.lastIndex = m[0].length;\n  }\n\n  while ( ( m = re.exec(input) ) !== null ) {\n    if (m[2] == \"\\n#\") {\n      m[2] = \"\\n\";\n      re.lastIndex--;\n    }\n    blocks.push( mk_block( m[1], m[2], line_no ) );\n    line_no += count_lines( m[0] );\n  }\n\n  return blocks;\n};\n\n/**\n *  Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ]\n *  - block (String): the block to process\n *  - next (Array): the following blocks\n *\n * Process `block` and return an array of JsonML nodes representing `block`.\n *\n * It does this by asking each block level function in the dialect to process\n * the block until one can. Succesful handling is indicated by returning an\n * array (with zero or more JsonML nodes), failure by a false value.\n *\n * Blocks handlers are responsible for calling [[Markdown#processInline]]\n * themselves as appropriate.\n *\n * If the blocks were split incorrectly or adjacent blocks need collapsing you\n * can adjust `next` in place using shift/splice etc.\n *\n * If any of this default behaviour is not right for the dialect, you can\n * define a `__call__` method on the dialect that will get invoked to handle\n * the block processing.\n */\nMarkdown.prototype.processBlock = function processBlock( block, next ) {\n  var cbs = this.dialect.block,\n      ord = cbs.__order__;\n\n  if ( \"__call__\" in cbs ) {\n    return cbs.__call__.call(this, block, next);\n  }\n\n  for ( var i = 0; i < ord.length; i++ ) {\n    //D:this.debug( \"Testing\", ord[i] );\n    var res = cbs[ ord[i] ].call( this, block, next );\n    if ( res ) {\n      //D:this.debug(\"  matched\");\n      if ( !isArray(res) || ( res.length > 0 && !( isArray(res[0]) ) ) )\n        this.debug(ord[i], \"didn't return a proper array\");\n      //D:this.debug( \"\" );\n      return res;\n    }\n  }\n\n  // Uhoh! no match! Should we throw an error?\n  return [];\n};\n\nMarkdown.prototype.processInline = function processInline( block ) {\n  return this.dialect.inline.__call__.call( this, String( block ) );\n};\n\n/**\n *  Markdown#toTree( source ) -> JsonML\n *  - source (String): markdown source to parse\n *\n *  Parse `source` into a JsonML tree representing the markdown document.\n **/\n// custom_tree means set this.tree to `custom_tree` and restore old value on return\nMarkdown.prototype.toTree = function toTree( source, custom_root ) {\n  var blocks = source instanceof Array ? source : this.split_blocks( source );\n\n  // Make tree a member variable so its easier to mess with in extensions\n  var old_tree = this.tree;\n  try {\n    this.tree = custom_root || this.tree || [ \"markdown\" ];\n\n    blocks:\n    while ( blocks.length ) {\n      var b = this.processBlock( blocks.shift(), blocks );\n\n      // Reference blocks and the like won't return any content\n      if ( !b.length ) continue blocks;\n\n      this.tree.push.apply( this.tree, b );\n    }\n    return this.tree;\n  }\n  finally {\n    if ( custom_root ) {\n      this.tree = old_tree;\n    }\n  }\n};\n\n// Noop by default\nMarkdown.prototype.debug = function () {\n  var args = Array.prototype.slice.call( arguments);\n  args.unshift(this.debug_indent);\n  if ( typeof print !== \"undefined\" )\n      print.apply( print, args );\n  if ( typeof console !== \"undefined\" && typeof console.log !== \"undefined\" )\n      console.log.apply( null, args );\n}\n\nMarkdown.prototype.loop_re_over_block = function( re, block, cb ) {\n  // Dont use /g regexps with this\n  var m,\n      b = block.valueOf();\n\n  while ( b.length && (m = re.exec(b) ) != null ) {\n    b = b.substr( m[0].length );\n    cb.call(this, m);\n  }\n  return b;\n};\n\n/**\n * Markdown.dialects\n *\n * Namespace of built-in dialects.\n **/\nMarkdown.dialects = {};\n\n/**\n * Markdown.dialects.Gruber\n *\n * The default dialect that follows the rules set out by John Gruber's\n * markdown.pl as closely as possible. Well actually we follow the behaviour of\n * that script which in some places is not exactly what the syntax web page\n * says.\n **/\nMarkdown.dialects.Gruber = {\n  block: {\n    atxHeader: function atxHeader( block, next ) {\n      var m = block.match( /^(#{1,6})\\s*(.*?)\\s*#*\\s*(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var header = [ \"header\", { level: m[ 1 ].length } ];\n      Array.prototype.push.apply(header, this.processInline(m[ 2 ]));\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    setextHeader: function setextHeader( block, next ) {\n      var m = block.match( /^(.*)\\n([-=])\\2\\2+(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var level = ( m[ 2 ] === \"=\" ) ? 1 : 2;\n      var header = [ \"header\", { level : level }, m[ 1 ] ];\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    code: function code( block, next ) {\n      // |    Foo\n      // |bar\n      // should be a code block followed by a paragraph. Fun\n      //\n      // There might also be adjacent code block to merge.\n\n      var ret = [],\n          re = /^(?: {0,3}\\t| {4})(.*)\\n?/,\n          lines;\n\n      // 4 spaces + content\n      if ( !block.match( re ) ) return undefined;\n\n      block_search:\n      do {\n        // Now pull out the rest of the lines\n        var b = this.loop_re_over_block(\n                  re, block.valueOf(), function( m ) { ret.push( m[1] ); } );\n\n        if ( b.length ) {\n          // Case alluded to in first comment. push it back on as a new block\n          next.unshift( mk_block(b, block.trailing) );\n          break block_search;\n        }\n        else if ( next.length ) {\n          // Check the next block - it might be code too\n          if ( !next[0].match( re ) ) break block_search;\n\n          // Pull how how many blanks lines follow - minus two to account for .join\n          ret.push ( block.trailing.replace(/[^\\n]/g, \"\").substring(2) );\n\n          block = next.shift();\n        }\n        else {\n          break block_search;\n        }\n      } while ( true );\n\n      return [ [ \"code_block\", ret.join(\"\\n\") ] ];\n    },\n\n    horizRule: function horizRule( block, next ) {\n      // this needs to find any hr in the block to handle abutting blocks\n      var m = block.match( /^(?:([\\s\\S]*?)\\n)?[ \\t]*([-_*])(?:[ \\t]*\\2){2,}[ \\t]*(?:\\n([\\s\\S]*))?$/ );\n\n      if ( !m ) {\n        return undefined;\n      }\n\n      var jsonml = [ [ \"hr\" ] ];\n\n      // if there's a leading abutting block, process it\n      if ( m[ 1 ] ) {\n        jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) );\n      }\n\n      // if there's a trailing abutting block, stick it into next\n      if ( m[ 3 ] ) {\n        next.unshift( mk_block( m[ 3 ] ) );\n      }\n\n      return jsonml;\n    },\n\n    // There are two types of lists. Tight and loose. Tight lists have no whitespace\n    // between the items (and result in text just in the <li>) and loose lists,\n    // which have an empty line between list items, resulting in (one or more)\n    // paragraphs inside the <li>.\n    //\n    // There are all sorts weird edge cases about the original markdown.pl's\n    // handling of lists:\n    //\n    // * Nested lists are supposed to be indented by four chars per level. But\n    //   if they aren't, you can get a nested list by indenting by less than\n    //   four so long as the indent doesn't match an indent of an existing list\n    //   item in the 'nest stack'.\n    //\n    // * The type of the list (bullet or number) is controlled just by the\n    //    first item at the indent. Subsequent changes are ignored unless they\n    //    are for nested lists\n    //\n    lists: (function( ) {\n      // Use a closure to hide a few variables.\n      var any_list = \"[*+-]|\\\\d+\\\\.\",\n          bullet_list = /[*+-]/,\n          number_list = /\\d+\\./,\n          // Capture leading indent as it matters for determining nested lists.\n          is_list_re = new RegExp( \"^( {0,3})(\" + any_list + \")[ \\t]+\" ),\n          indent_re = \"(?: {0,3}\\\\t| {4})\";\n\n      // TODO: Cache this regexp for certain depths.\n      // Create a regexp suitable for matching an li for a given stack depth\n      function regex_for_depth( depth ) {\n\n        return new RegExp(\n          // m[1] = indent, m[2] = list_type\n          \"(?:^(\" + indent_re + \"{0,\" + depth + \"} {0,3})(\" + any_list + \")\\\\s+)|\" +\n          // m[3] = cont\n          \"(^\" + indent_re + \"{0,\" + (depth-1) + \"}[ ]{0,4})\"\n        );\n      }\n      function expand_tab( input ) {\n        return input.replace( / {0,3}\\t/g, \"    \" );\n      }\n\n      // Add inline content `inline` to `li`. inline comes from processInline\n      // so is an array of content\n      function add(li, loose, inline, nl) {\n        if ( loose ) {\n          li.push( [ \"para\" ].concat(inline) );\n          return;\n        }\n        // Hmmm, should this be any block level element or just paras?\n        var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == \"para\"\n                   ? li[li.length -1]\n                   : li;\n\n        // If there is already some content in this list, add the new line in\n        if ( nl && li.length > 1 ) inline.unshift(nl);\n\n        for ( var i = 0; i < inline.length; i++ ) {\n          var what = inline[i],\n              is_str = typeof what == \"string\";\n          if ( is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == \"string\" ) {\n            add_to[ add_to.length-1 ] += what;\n          }\n          else {\n            add_to.push( what );\n          }\n        }\n      }\n\n      // contained means have an indent greater than the current one. On\n      // *every* line in the block\n      function get_contained_blocks( depth, blocks ) {\n\n        var re = new RegExp( \"^(\" + indent_re + \"{\" + depth + \"}.*?\\\\n?)*$\" ),\n            replace = new RegExp(\"^\" + indent_re + \"{\" + depth + \"}\", \"gm\"),\n            ret = [];\n\n        while ( blocks.length > 0 ) {\n          if ( re.exec( blocks[0] ) ) {\n            var b = blocks.shift(),\n                // Now remove that indent\n                x = b.replace( replace, \"\");\n\n            ret.push( mk_block( x, b.trailing, b.lineNumber ) );\n          }\n          else {\n            break;\n          }\n        }\n        return ret;\n      }\n\n      // passed to stack.forEach to turn list items up the stack into paras\n      function paragraphify(s, i, stack) {\n        var list = s.list;\n        var last_li = list[list.length-1];\n\n        if ( last_li[1] instanceof Array && last_li[1][0] == \"para\" ) {\n          return;\n        }\n        if ( i + 1 == stack.length ) {\n          // Last stack frame\n          // Keep the same array, but replace the contents\n          last_li.push( [\"para\"].concat( last_li.splice(1, last_li.length - 1) ) );\n        }\n        else {\n          var sublist = last_li.pop();\n          last_li.push( [\"para\"].concat( last_li.splice(1, last_li.length - 1) ), sublist );\n        }\n      }\n\n      // The matcher function\n      return function( block, next ) {\n        var m = block.match( is_list_re );\n        if ( !m ) return undefined;\n\n        function make_list( m ) {\n          var list = bullet_list.exec( m[2] )\n                   ? [\"bulletlist\"]\n                   : [\"numberlist\"];\n\n          stack.push( { list: list, indent: m[1] } );\n          return list;\n        }\n\n\n        var stack = [], // Stack of lists for nesting.\n            list = make_list( m ),\n            last_li,\n            loose = false,\n            ret = [ stack[0].list ],\n            i;\n\n        // Loop to search over block looking for inner block elements and loose lists\n        loose_search:\n        while ( true ) {\n          // Split into lines preserving new lines at end of line\n          var lines = block.split( /(?=\\n)/ );\n\n          // We have to grab all lines for a li and call processInline on them\n          // once as there are some inline things that can span lines.\n          var li_accumulate = \"\";\n\n          // Loop over the lines in this block looking for tight lists.\n          tight_search:\n          for ( var line_no = 0; line_no < lines.length; line_no++ ) {\n            var nl = \"\",\n                l = lines[line_no].replace(/^\\n/, function(n) { nl = n; return \"\"; });\n\n            // TODO: really should cache this\n            var line_re = regex_for_depth( stack.length );\n\n            m = l.match( line_re );\n            //print( \"line:\", uneval(l), \"\\nline match:\", uneval(m) );\n\n            // We have a list item\n            if ( m[1] !== undefined ) {\n              // Process the previous list item, if any\n              if ( li_accumulate.length ) {\n                add( last_li, loose, this.processInline( li_accumulate ), nl );\n                // Loose mode will have been dealt with. Reset it\n                loose = false;\n                li_accumulate = \"\";\n              }\n\n              m[1] = expand_tab( m[1] );\n              var wanted_depth = Math.floor(m[1].length/4)+1;\n              //print( \"want:\", wanted_depth, \"stack:\", stack.length);\n              if ( wanted_depth > stack.length ) {\n                // Deep enough for a nested list outright\n                //print ( \"new nested list\" );\n                list = make_list( m );\n                last_li.push( list );\n                last_li = list[1] = [ \"listitem\" ];\n              }\n              else {\n                // We aren't deep enough to be strictly a new level. This is\n                // where Md.pl goes nuts. If the indent matches a level in the\n                // stack, put it there, else put it one deeper then the\n                // wanted_depth deserves.\n                var found = false;\n                for ( i = 0; i < stack.length; i++ ) {\n                  if ( stack[ i ].indent != m[1] ) continue;\n                  list = stack[ i ].list;\n                  stack.splice( i+1, stack.length - (i+1) );\n                  found = true;\n                  break;\n                }\n\n                if (!found) {\n                  //print(\"not found. l:\", uneval(l));\n                  wanted_depth++;\n                  if ( wanted_depth <= stack.length ) {\n                    stack.splice(wanted_depth, stack.length - wanted_depth);\n                    //print(\"Desired depth now\", wanted_depth, \"stack:\", stack.length);\n                    list = stack[wanted_depth-1].list;\n                    //print(\"list:\", uneval(list) );\n                  }\n                  else {\n                    //print (\"made new stack for messy indent\");\n                    list = make_list(m);\n                    last_li.push(list);\n                  }\n                }\n\n                //print( uneval(list), \"last\", list === stack[stack.length-1].list );\n                last_li = [ \"listitem\" ];\n                list.push(last_li);\n              } // end depth of shenegains\n              nl = \"\";\n            }\n\n            // Add content\n            if ( l.length > m[0].length ) {\n              li_accumulate += nl + l.substr( m[0].length );\n            }\n          } // tight_search\n\n          if ( li_accumulate.length ) {\n            add( last_li, loose, this.processInline( li_accumulate ), nl );\n            // Loose mode will have been dealt with. Reset it\n            loose = false;\n            li_accumulate = \"\";\n          }\n\n          // Look at the next block - we might have a loose list. Or an extra\n          // paragraph for the current li\n          var contained = get_contained_blocks( stack.length, next );\n\n          // Deal with code blocks or properly nested lists\n          if ( contained.length > 0 ) {\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            last_li.push.apply( last_li, this.toTree( contained, [] ) );\n          }\n\n          var next_block = next[0] && next[0].valueOf() || \"\";\n\n          if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) {\n            block = next.shift();\n\n            // Check for an HR following a list: features/lists/hr_abutting\n            var hr = this.dialect.block.horizRule( block, next );\n\n            if ( hr ) {\n              ret.push.apply(ret, hr);\n              break;\n            }\n\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            loose = true;\n            continue loose_search;\n          }\n          break;\n        } // loose_search\n\n        return ret;\n      };\n    })(),\n\n    blockquote: function blockquote( block, next ) {\n      if ( !block.match( /^>/m ) )\n        return undefined;\n\n      var jsonml = [];\n\n      // separate out the leading abutting block, if any. I.e. in this case:\n      //\n      //  a\n      //  > b\n      //\n      if ( block[ 0 ] != \">\" ) {\n        var lines = block.split( /\\n/ ),\n            prev = [],\n            line_no = block.lineNumber;\n\n        // keep shifting lines until you find a crotchet\n        while ( lines.length && lines[ 0 ][ 0 ] != \">\" ) {\n            prev.push( lines.shift() );\n            line_no++;\n        }\n\n        var abutting = mk_block( prev.join( \"\\n\" ), \"\\n\", block.lineNumber );\n        jsonml.push.apply( jsonml, this.processBlock( abutting, [] ) );\n        // reassemble new block of just block quotes!\n        block = mk_block( lines.join( \"\\n\" ), block.trailing, line_no );\n      }\n\n\n      // if the next block is also a blockquote merge it in\n      while ( next.length && next[ 0 ][ 0 ] == \">\" ) {\n        var b = next.shift();\n        block = mk_block( block + block.trailing + b, b.trailing, block.lineNumber );\n      }\n\n      // Strip off the leading \"> \" and re-process as a block.\n      var input = block.replace( /^> ?/gm, \"\" ),\n          old_tree = this.tree,\n          processedBlock = this.toTree( input, [ \"blockquote\" ] ),\n          attr = extract_attr( processedBlock );\n\n      // If any link references were found get rid of them\n      if ( attr && attr.references ) {\n        delete attr.references;\n        // And then remove the attribute object if it's empty\n        if ( isEmpty( attr ) ) {\n          processedBlock.splice( 1, 1 );\n        }\n      }\n\n      jsonml.push( processedBlock );\n      return jsonml;\n    },\n\n    referenceDefn: function referenceDefn( block, next) {\n      var re = /^\\s*\\[(.*?)\\]:\\s*(\\S+)(?:\\s+(?:(['\"])(.*?)\\3|\\((.*?)\\)))?\\n?/;\n      // interesting matches are [ , ref_id, url, , title, title ]\n\n      if ( !block.match(re) )\n        return undefined;\n\n      // make an attribute node if it doesn't exist\n      if ( !extract_attr( this.tree ) ) {\n        this.tree.splice( 1, 0, {} );\n      }\n\n      var attrs = extract_attr( this.tree );\n\n      // make a references hash if it doesn't exist\n      if ( attrs.references === undefined ) {\n        attrs.references = {};\n      }\n\n      var b = this.loop_re_over_block(re, block, function( m ) {\n\n        if ( m[2] && m[2][0] == \"<\" && m[2][m[2].length-1] == \">\" )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        var ref = attrs.references[ m[1].toLowerCase() ] = {\n          href: m[2]\n        };\n\n        if ( m[4] !== undefined )\n          ref.title = m[4];\n        else if ( m[5] !== undefined )\n          ref.title = m[5];\n\n      } );\n\n      if ( b.length )\n        next.unshift( mk_block( b, block.trailing ) );\n\n      return [];\n    },\n\n    para: function para( block, next ) {\n      // everything's a para!\n      return [ [\"para\"].concat( this.processInline( block ) ) ];\n    }\n  }\n};\n\nMarkdown.dialects.Gruber.inline = {\n\n    __oneElement__: function oneElement( text, patterns_or_re, previous_nodes ) {\n      var m,\n          res,\n          lastIndex = 0;\n\n      patterns_or_re = patterns_or_re || this.dialect.inline.__patterns__;\n      var re = new RegExp( \"([\\\\s\\\\S]*?)(\" + (patterns_or_re.source || patterns_or_re) + \")\" );\n\n      m = re.exec( text );\n      if (!m) {\n        // Just boring text\n        return [ text.length, text ];\n      }\n      else if ( m[1] ) {\n        // Some un-interesting text matched. Return that first\n        return [ m[1].length, m[1] ];\n      }\n\n      var res;\n      if ( m[2] in this.dialect.inline ) {\n        res = this.dialect.inline[ m[2] ].call(\n                  this,\n                  text.substr( m.index ), m, previous_nodes || [] );\n      }\n      // Default for now to make dev easier. just slurp special and output it.\n      res = res || [ m[2].length, m[2] ];\n      return res;\n    },\n\n    __call__: function inline( text, patterns ) {\n\n      var out = [],\n          res;\n\n      function add(x) {\n        //D:self.debug(\"  adding output\", uneval(x));\n        if ( typeof x == \"string\" && typeof out[out.length-1] == \"string\" )\n          out[ out.length-1 ] += x;\n        else\n          out.push(x);\n      }\n\n      while ( text.length > 0 ) {\n        res = this.dialect.inline.__oneElement__.call(this, text, patterns, out );\n        text = text.substr( res.shift() );\n        forEach(res, add )\n      }\n\n      return out;\n    },\n\n    // These characters are intersting elsewhere, so have rules for them so that\n    // chunks of plain text blocks don't include them\n    \"]\": function () {},\n    \"}\": function () {},\n\n    __escape__ : /^\\\\[\\\\`\\*_{}\\[\\]()#\\+.!\\-]/,\n\n    \"\\\\\": function escaped( text ) {\n      // [ length of input processed, node/children to add... ]\n      // Only esacape: \\ ` * _ { } [ ] ( ) # * + - . !\n      if ( this.dialect.inline.__escape__.exec( text ) )\n        return [ 2, text.charAt( 1 ) ];\n      else\n        // Not an esacpe\n        return [ 1, \"\\\\\" ];\n    },\n\n    \"![\": function image( text ) {\n\n      // Unlike images, alt text is plain text only. no other elements are\n      // allowed in there\n\n      // ![Alt text](/path/to/img.jpg \"Optional title\")\n      //      1          2            3       4         <--- captures\n      var m = text.match( /^!\\[(.*?)\\][ \\t]*\\([ \\t]*([^\")]*?)(?:[ \\t]+([\"'])(.*?)\\3)?[ \\t]*\\)/ );\n\n      if ( m ) {\n        if ( m[2] && m[2][0] == \"<\" && m[2][m[2].length-1] == \">\" )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        m[2] = this.dialect.inline.__call__.call( this, m[2], /\\\\/ )[0];\n\n        var attrs = { alt: m[1], href: m[2] || \"\" };\n        if ( m[4] !== undefined)\n          attrs.title = m[4];\n\n        return [ m[0].length, [ \"img\", attrs ] ];\n      }\n\n      // ![Alt text][id]\n      m = text.match( /^!\\[(.*?)\\][ \\t]*\\[(.*?)\\]/ );\n\n      if ( m ) {\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion\n        return [ m[0].length, [ \"img_ref\", { alt: m[1], ref: m[2].toLowerCase(), original: m[0] } ] ];\n      }\n\n      // Just consume the '!['\n      return [ 2, \"![\" ];\n    },\n\n    \"[\": function link( text ) {\n\n      var orig = String(text);\n      // Inline content is possible inside `link text`\n      var res = Markdown.DialectHelpers.inline_until_char.call( this, text.substr(1), \"]\" );\n\n      // No closing ']' found. Just consume the [\n      if ( !res ) return [ 1, \"[\" ];\n\n      var consumed = 1 + res[ 0 ],\n          children = res[ 1 ],\n          link,\n          attrs;\n\n      // At this point the first [...] has been parsed. See what follows to find\n      // out which kind of link we are (reference or direct url)\n      text = text.substr( consumed );\n\n      // [link text](/path/to/img.jpg \"Optional title\")\n      //                 1            2       3         <--- captures\n      // This will capture up to the last paren in the block. We then pull\n      // back based on if there a matching ones in the url\n      //    ([here](/url/(test))\n      // The parens have to be balanced\n      var m = text.match( /^\\s*\\([ \\t]*([^\"']*)(?:[ \\t]+([\"'])(.*?)\\2)?[ \\t]*\\)/ );\n      if ( m ) {\n        var url = m[1];\n        consumed += m[0].length;\n\n        if ( url && url[0] == \"<\" && url[url.length-1] == \">\" )\n          url = url.substring( 1, url.length - 1 );\n\n        // If there is a title we don't have to worry about parens in the url\n        if ( !m[3] ) {\n          var open_parens = 1; // One open that isn't in the capture\n          for ( var len = 0; len < url.length; len++ ) {\n            switch ( url[len] ) {\n            case \"(\":\n              open_parens++;\n              break;\n            case \")\":\n              if ( --open_parens == 0) {\n                consumed -= url.length - len;\n                url = url.substring(0, len);\n              }\n              break;\n            }\n          }\n        }\n\n        // Process escapes only\n        url = this.dialect.inline.__call__.call( this, url, /\\\\/ )[0];\n\n        attrs = { href: url || \"\" };\n        if ( m[3] !== undefined)\n          attrs.title = m[3];\n\n        link = [ \"link\", attrs ].concat( children );\n        return [ consumed, link ];\n      }\n\n      // [Alt text][id]\n      // [Alt text] [id]\n      m = text.match( /^\\s*\\[(.*?)\\]/ );\n\n      if ( m ) {\n\n        consumed += m[ 0 ].length;\n\n        // [links][] uses links as its reference\n        attrs = { ref: ( m[ 1 ] || String(children) ).toLowerCase(),  original: orig.substr( 0, consumed ) };\n\n        link = [ \"link_ref\", attrs ].concat( children );\n\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion.\n        // Store the original so that conversion can revert if the ref isn't found.\n        return [ consumed, link ];\n      }\n\n      // [id]\n      // Only if id is plain (no formatting.)\n      if ( children.length == 1 && typeof children[0] == \"string\" ) {\n\n        attrs = { ref: children[0].toLowerCase(),  original: orig.substr( 0, consumed ) };\n        link = [ \"link_ref\", attrs, children[0] ];\n        return [ consumed, link ];\n      }\n\n      // Just consume the \"[\"\n      return [ 1, \"[\" ];\n    },\n\n\n    \"<\": function autoLink( text ) {\n      var m;\n\n      if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\\.[a-zA-Z]+))>/ ) ) != null ) {\n        if ( m[3] ) {\n          return [ m[0].length, [ \"link\", { href: \"mailto:\" + m[3] }, m[3] ] ];\n\n        }\n        else if ( m[2] == \"mailto\" ) {\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1].substr(\"mailto:\".length ) ] ];\n        }\n        else\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1] ] ];\n      }\n\n      return [ 1, \"<\" ];\n    },\n\n    \"`\": function inlineCode( text ) {\n      // Inline code block. as many backticks as you like to start it\n      // Always skip over the opening ticks.\n      var m = text.match( /(`+)(([\\s\\S]*?)\\1)/ );\n\n      if ( m && m[2] )\n        return [ m[1].length + m[2].length, [ \"inlinecode\", m[3] ] ];\n      else {\n        // TODO: No matching end code found - warn!\n        return [ 1, \"`\" ];\n      }\n    },\n\n    \"  \\n\": function lineBreak( text ) {\n      return [ 3, [ \"linebreak\" ] ];\n    }\n\n};\n\n// Meta Helper/generator method for em and strong handling\nfunction strong_em( tag, md ) {\n\n  var state_slot = tag + \"_state\",\n      other_slot = tag == \"strong\" ? \"em_state\" : \"strong_state\";\n\n  function CloseTag(len) {\n    this.len_after = len;\n    this.name = \"close_\" + md;\n  }\n\n  return function ( text, orig_match ) {\n\n    if ( this[state_slot][0] == md ) {\n      // Most recent em is of this type\n      //D:this.debug(\"closing\", md);\n      this[state_slot].shift();\n\n      // \"Consume\" everything to go back to the recrusion in the else-block below\n      return[ text.length, new CloseTag(text.length-md.length) ];\n    }\n    else {\n      // Store a clone of the em/strong states\n      var other = this[other_slot].slice(),\n          state = this[state_slot].slice();\n\n      this[state_slot].unshift(md);\n\n      //D:this.debug_indent += \"  \";\n\n      // Recurse\n      var res = this.processInline( text.substr( md.length ) );\n      //D:this.debug_indent = this.debug_indent.substr(2);\n\n      var last = res[res.length - 1];\n\n      //D:this.debug(\"processInline from\", tag + \": \", uneval( res ) );\n\n      var check = this[state_slot].shift();\n      if ( last instanceof CloseTag ) {\n        res.pop();\n        // We matched! Huzzah.\n        var consumed = text.length - last.len_after;\n        return [ consumed, [ tag ].concat(res) ];\n      }\n      else {\n        // Restore the state of the other kind. We might have mistakenly closed it.\n        this[other_slot] = other;\n        this[state_slot] = state;\n\n        // We can't reuse the processed result as it could have wrong parsing contexts in it.\n        return [ md.length, md ];\n      }\n    }\n  }; // End returned function\n}\n\nMarkdown.dialects.Gruber.inline[\"**\"] = strong_em(\"strong\", \"**\");\nMarkdown.dialects.Gruber.inline[\"__\"] = strong_em(\"strong\", \"__\");\nMarkdown.dialects.Gruber.inline[\"*\"]  = strong_em(\"em\", \"*\");\nMarkdown.dialects.Gruber.inline[\"_\"]  = strong_em(\"em\", \"_\");\n\n\n// Build default order from insertion order.\nMarkdown.buildBlockOrder = function(d) {\n  var ord = [];\n  for ( var i in d ) {\n    if ( i == \"__order__\" || i == \"__call__\" ) continue;\n    ord.push( i );\n  }\n  d.__order__ = ord;\n};\n\n// Build patterns for inline matcher\nMarkdown.buildInlinePatterns = function(d) {\n  var patterns = [];\n\n  for ( var i in d ) {\n    // __foo__ is reserved and not a pattern\n    if ( i.match( /^__.*__$/) ) continue;\n    var l = i.replace( /([\\\\.*+?|()\\[\\]{}])/g, \"\\\\$1\" )\n             .replace( /\\n/, \"\\\\n\" );\n    patterns.push( i.length == 1 ? l : \"(?:\" + l + \")\" );\n  }\n\n  patterns = patterns.join(\"|\");\n  d.__patterns__ = patterns;\n  //print(\"patterns:\", uneval( patterns ) );\n\n  var fn = d.__call__;\n  d.__call__ = function(text, pattern) {\n    if ( pattern != undefined ) {\n      return fn.call(this, text, pattern);\n    }\n    else\n    {\n      return fn.call(this, text, patterns);\n    }\n  };\n};\n\nMarkdown.DialectHelpers = {};\nMarkdown.DialectHelpers.inline_until_char = function( text, want ) {\n  var consumed = 0,\n      nodes = [];\n\n  while ( true ) {\n    if ( text.charAt( consumed ) == want ) {\n      // Found the character we were looking for\n      consumed++;\n      return [ consumed, nodes ];\n    }\n\n    if ( consumed >= text.length ) {\n      // No closing char found. Abort.\n      return null;\n    }\n\n    var res = this.dialect.inline.__oneElement__.call(this, text.substr( consumed ) );\n    consumed += res[ 0 ];\n    // Add any returned nodes.\n    nodes.push.apply( nodes, res.slice( 1 ) );\n  }\n}\n\n// Helper function to make sub-classing a dialect easier\nMarkdown.subclassDialect = function( d ) {\n  function Block() {}\n  Block.prototype = d.block;\n  function Inline() {}\n  Inline.prototype = d.inline;\n\n  return { block: new Block(), inline: new Inline() };\n};\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Gruber.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Gruber.inline );\n\nMarkdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber );\n\nMarkdown.dialects.Maruku.processMetaHash = function processMetaHash( meta_string ) {\n  var meta = split_meta_hash( meta_string ),\n      attr = {};\n\n  for ( var i = 0; i < meta.length; ++i ) {\n    // id: #foo\n    if ( /^#/.test( meta[ i ] ) ) {\n      attr.id = meta[ i ].substring( 1 );\n    }\n    // class: .foo\n    else if ( /^\\./.test( meta[ i ] ) ) {\n      // if class already exists, append the new one\n      if ( attr[\"class\"] ) {\n        attr[\"class\"] = attr[\"class\"] + meta[ i ].replace( /./, \" \" );\n      }\n      else {\n        attr[\"class\"] = meta[ i ].substring( 1 );\n      }\n    }\n    // attribute: foo=bar\n    else if ( /\\=/.test( meta[ i ] ) ) {\n      var s = meta[ i ].split( /\\=/ );\n      attr[ s[ 0 ] ] = s[ 1 ];\n    }\n  }\n\n  return attr;\n}\n\nfunction split_meta_hash( meta_string ) {\n  var meta = meta_string.split( \"\" ),\n      parts = [ \"\" ],\n      in_quotes = false;\n\n  while ( meta.length ) {\n    var letter = meta.shift();\n    switch ( letter ) {\n      case \" \" :\n        // if we're in a quoted section, keep it\n        if ( in_quotes ) {\n          parts[ parts.length - 1 ] += letter;\n        }\n        // otherwise make a new part\n        else {\n          parts.push( \"\" );\n        }\n        break;\n      case \"'\" :\n      case '\"' :\n        // reverse the quotes and move straight on\n        in_quotes = !in_quotes;\n        break;\n      case \"\\\\\" :\n        // shift off the next letter to be used straight away.\n        // it was escaped so we'll keep it whatever it is\n        letter = meta.shift();\n      default :\n        parts[ parts.length - 1 ] += letter;\n        break;\n    }\n  }\n\n  return parts;\n}\n\nMarkdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) {\n  // we're only interested in the first block\n  if ( block.lineNumber > 1 ) return undefined;\n\n  // document_meta blocks consist of one or more lines of `Key: Value\\n`\n  if ( ! block.match( /^(?:\\w+:.*\\n)*\\w+:.*$/ ) ) return undefined;\n\n  // make an attribute node if it doesn't exist\n  if ( !extract_attr( this.tree ) ) {\n    this.tree.splice( 1, 0, {} );\n  }\n\n  var pairs = block.split( /\\n/ );\n  for ( p in pairs ) {\n    var m = pairs[ p ].match( /(\\w+):\\s*(.*)$/ ),\n        key = m[ 1 ].toLowerCase(),\n        value = m[ 2 ];\n\n    this.tree[ 1 ][ key ] = value;\n  }\n\n  // document_meta produces no content!\n  return [];\n};\n\nMarkdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) {\n  // check if the last line of the block is an meta hash\n  var m = block.match( /(^|\\n) {0,3}\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}$/ );\n  if ( !m ) return undefined;\n\n  // process the meta hash\n  var attr = this.dialect.processMetaHash( m[ 2 ] );\n\n  var hash;\n\n  // if we matched ^ then we need to apply meta to the previous block\n  if ( m[ 1 ] === \"\" ) {\n    var node = this.tree[ this.tree.length - 1 ];\n    hash = extract_attr( node );\n\n    // if the node is a string (rather than JsonML), bail\n    if ( typeof node === \"string\" ) return undefined;\n\n    // create the attribute hash if it doesn't exist\n    if ( !hash ) {\n      hash = {};\n      node.splice( 1, 0, hash );\n    }\n\n    // add the attributes in\n    for ( a in attr ) {\n      hash[ a ] = attr[ a ];\n    }\n\n    // return nothing so the meta hash is removed\n    return [];\n  }\n\n  // pull the meta hash off the block and process what's left\n  var b = block.replace( /\\n.*$/, \"\" ),\n      result = this.processBlock( b, [] );\n\n  // get or make the attributes hash\n  hash = extract_attr( result[ 0 ] );\n  if ( !hash ) {\n    hash = {};\n    result[ 0 ].splice( 1, 0, hash );\n  }\n\n  // attach the attributes to the block\n  for ( a in attr ) {\n    hash[ a ] = attr[ a ];\n  }\n\n  return result;\n};\n\nMarkdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) {\n  // one or more terms followed by one or more definitions, in a single block\n  var tight = /^((?:[^\\s:].*\\n)+):\\s+([\\s\\S]+)$/,\n      list = [ \"dl\" ],\n      i, m;\n\n  // see if we're dealing with a tight or loose block\n  if ( ( m = block.match( tight ) ) ) {\n    // pull subsequent tight DL blocks out of `next`\n    var blocks = [ block ];\n    while ( next.length && tight.exec( next[ 0 ] ) ) {\n      blocks.push( next.shift() );\n    }\n\n    for ( var b = 0; b < blocks.length; ++b ) {\n      var m = blocks[ b ].match( tight ),\n          terms = m[ 1 ].replace( /\\n$/, \"\" ).split( /\\n/ ),\n          defns = m[ 2 ].split( /\\n:\\s+/ );\n\n      // print( uneval( m ) );\n\n      for ( i = 0; i < terms.length; ++i ) {\n        list.push( [ \"dt\", terms[ i ] ] );\n      }\n\n      for ( i = 0; i < defns.length; ++i ) {\n        // run inline processing over the definition\n        list.push( [ \"dd\" ].concat( this.processInline( defns[ i ].replace( /(\\n)\\s+/, \"$1\" ) ) ) );\n      }\n    }\n  }\n  else {\n    return undefined;\n  }\n\n  return [ list ];\n};\n\n// splits on unescaped instances of @ch. If @ch is not a character the result\n// can be unpredictable\n\nMarkdown.dialects.Maruku.block.table = function table (block, next) {\n\n    var _split_on_unescaped = function(s, ch) {\n        ch = ch || '\\\\s';\n        if (ch.match(/^[\\\\|\\[\\]{}?*.+^$]$/)) { ch = '\\\\' + ch; }\n        var res = [ ],\n            r = new RegExp('^((?:\\\\\\\\.|[^\\\\\\\\' + ch + '])*)' + ch + '(.*)'),\n            m;\n        while(m = s.match(r)) {\n            res.push(m[1]);\n            s = m[2];\n        }\n        res.push(s);\n        return res;\n    }\n\n    var leading_pipe = /^ {0,3}\\|(.+)\\n {0,3}\\|\\s*([\\-:]+[\\-| :]*)\\n((?:\\s*\\|.*(?:\\n|$))*)(?=\\n|$)/,\n        // find at least an unescaped pipe in each line\n        no_leading_pipe = /^ {0,3}(\\S(?:\\\\.|[^\\\\|])*\\|.*)\\n {0,3}([\\-:]+\\s*\\|[\\-| :]*)\\n((?:(?:\\\\.|[^\\\\|])*\\|.*(?:\\n|$))*)(?=\\n|$)/,\n        i, m;\n    if (m = block.match(leading_pipe)) {\n        // remove leading pipes in contents\n        // (header and horizontal rule already have the leading pipe left out)\n        m[3] = m[3].replace(/^\\s*\\|/gm, '');\n    } else if (! ( m = block.match(no_leading_pipe))) {\n        return undefined;\n    }\n\n    var table = [ \"table\", [ \"thead\", [ \"tr\" ] ], [ \"tbody\" ] ];\n\n    // remove trailing pipes, then split on pipes\n    // (no escaped pipes are allowed in horizontal rule)\n    m[2] = m[2].replace(/\\|\\s*$/, '').split('|');\n\n    // process alignment\n    var html_attrs = [ ];\n    forEach (m[2], function (s) {\n        if (s.match(/^\\s*-+:\\s*$/))       html_attrs.push({align: \"right\"});\n        else if (s.match(/^\\s*:-+\\s*$/))  html_attrs.push({align: \"left\"});\n        else if (s.match(/^\\s*:-+:\\s*$/)) html_attrs.push({align: \"center\"});\n        else                              html_attrs.push({});\n    });\n\n    // now for the header, avoid escaped pipes\n    m[1] = _split_on_unescaped(m[1].replace(/\\|\\s*$/, ''), '|');\n    for (i = 0; i < m[1].length; i++) {\n        table[1][1].push(['th', html_attrs[i] || {}].concat(\n            this.processInline(m[1][i].trim())));\n    }\n\n    // now for body contents\n    forEach (m[3].replace(/\\|\\s*$/mg, '').split('\\n'), function (row) {\n        var html_row = ['tr'];\n        row = _split_on_unescaped(row, '|');\n        for (i = 0; i < row.length; i++) {\n            html_row.push(['td', html_attrs[i] || {}].concat(this.processInline(row[i].trim())));\n        }\n        table[2].push(html_row);\n    }, this);\n\n    return [table];\n}\n\nMarkdown.dialects.Maruku.inline[ \"{:\" ] = function inline_meta( text, matches, out ) {\n  if ( !out.length ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // get the preceeding element\n  var before = out[ out.length - 1 ];\n\n  if ( typeof before === \"string\" ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // match a meta hash\n  var m = text.match( /^\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}/ );\n\n  // no match, false alarm\n  if ( !m ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // attach the attributes to the preceeding element\n  var meta = this.dialect.processMetaHash( m[ 1 ] ),\n      attr = extract_attr( before );\n\n  if ( !attr ) {\n    attr = {};\n    before.splice( 1, 0, attr );\n  }\n\n  for ( var k in meta ) {\n    attr[ k ] = meta[ k ];\n  }\n\n  // cut out the string and replace it with nothing\n  return [ m[ 0 ].length, \"\" ];\n};\n\nMarkdown.dialects.Maruku.inline.__escape__ = /^\\\\[\\\\`\\*_{}\\[\\]()#\\+.!\\-|:]/;\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Maruku.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Maruku.inline );\n\nvar isArray = Array.isArray || function(obj) {\n  return Object.prototype.toString.call(obj) == \"[object Array]\";\n};\n\nvar forEach;\n// Don't mess with Array.prototype. Its not friendly\nif ( Array.prototype.forEach ) {\n  forEach = function( arr, cb, thisp ) {\n    return arr.forEach( cb, thisp );\n  };\n}\nelse {\n  forEach = function(arr, cb, thisp) {\n    for (var i = 0; i < arr.length; i++) {\n      cb.call(thisp || arr, arr[i], i, arr);\n    }\n  }\n}\n\nvar isEmpty = function( obj ) {\n  for ( var key in obj ) {\n    if ( hasOwnProperty.call( obj, key ) ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction extract_attr( jsonml ) {\n  return isArray(jsonml)\n      && jsonml.length > 1\n      && typeof jsonml[ 1 ] === \"object\"\n      && !( isArray(jsonml[ 1 ]) )\n      ? jsonml[ 1 ]\n      : undefined;\n}\n\n\n\n/**\n *  renderJsonML( jsonml[, options] ) -> String\n *  - jsonml (Array): JsonML array to render to XML\n *  - options (Object): options\n *\n *  Converts the given JsonML into well-formed XML.\n *\n *  The options currently understood are:\n *\n *  - root (Boolean): wether or not the root node should be included in the\n *    output, or just its children. The default `false` is to not include the\n *    root itself.\n */\nexpose.renderJsonML = function( jsonml, options ) {\n  options = options || {};\n  // include the root element in the rendered output?\n  options.root = options.root || false;\n\n  var content = [];\n\n  if ( options.root ) {\n    content.push( render_tree( jsonml ) );\n  }\n  else {\n    jsonml.shift(); // get rid of the tag\n    if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n      jsonml.shift(); // get rid of the attributes\n    }\n\n    while ( jsonml.length ) {\n      content.push( render_tree( jsonml.shift() ) );\n    }\n  }\n\n  return content.join( \"\\n\\n\" );\n};\n\nfunction escapeHTML( text ) {\n  return text.replace( /&/g, \"&amp;\" )\n             .replace( /</g, \"&lt;\" )\n             .replace( />/g, \"&gt;\" )\n             .replace( /\"/g, \"&quot;\" )\n             .replace( /'/g, \"&#39;\" );\n}\n\nfunction render_tree( jsonml ) {\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return escapeHTML( jsonml );\n  }\n\n  var tag = jsonml.shift(),\n      attributes = {},\n      content = [];\n\n  if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n    attributes = jsonml.shift();\n  }\n\n  while ( jsonml.length ) {\n    content.push( render_tree( jsonml.shift() ) );\n  }\n\n  var tag_attrs = \"\";\n  for ( var a in attributes ) {\n    tag_attrs += \" \" + a + '=\"' + escapeHTML( attributes[ a ] ) + '\"';\n  }\n\n  // be careful about adding whitespace here for inline elements\n  if ( tag == \"img\" || tag == \"br\" || tag == \"hr\" ) {\n    return \"<\"+ tag + tag_attrs + \"/>\";\n  }\n  else {\n    return \"<\"+ tag + tag_attrs + \">\" + content.join( \"\" ) + \"</\" + tag + \">\";\n  }\n}\n\nfunction convert_tree_to_html( tree, references, options ) {\n  var i;\n  options = options || {};\n\n  // shallow clone\n  var jsonml = tree.slice( 0 );\n\n  if ( typeof options.preprocessTreeNode === \"function\" ) {\n      jsonml = options.preprocessTreeNode(jsonml, references);\n  }\n\n  // Clone attributes if they exist\n  var attrs = extract_attr( jsonml );\n  if ( attrs ) {\n    jsonml[ 1 ] = {};\n    for ( i in attrs ) {\n      jsonml[ 1 ][ i ] = attrs[ i ];\n    }\n    attrs = jsonml[ 1 ];\n  }\n\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return jsonml;\n  }\n\n  // convert this node\n  switch ( jsonml[ 0 ] ) {\n    case \"header\":\n      jsonml[ 0 ] = \"h\" + jsonml[ 1 ].level;\n      delete jsonml[ 1 ].level;\n      break;\n    case \"bulletlist\":\n      jsonml[ 0 ] = \"ul\";\n      break;\n    case \"numberlist\":\n      jsonml[ 0 ] = \"ol\";\n      break;\n    case \"listitem\":\n      jsonml[ 0 ] = \"li\";\n      break;\n    case \"para\":\n      jsonml[ 0 ] = \"p\";\n      break;\n    case \"markdown\":\n      jsonml[ 0 ] = \"html\";\n      if ( attrs ) delete attrs.references;\n      break;\n    case \"code_block\":\n      jsonml[ 0 ] = \"pre\";\n      i = attrs ? 2 : 1;\n      var code = [ \"code\" ];\n      code.push.apply( code, jsonml.splice( i, jsonml.length - i ) );\n      jsonml[ i ] = code;\n      break;\n    case \"inlinecode\":\n      jsonml[ 0 ] = \"code\";\n      break;\n    case \"img\":\n      jsonml[ 1 ].src = jsonml[ 1 ].href;\n      delete jsonml[ 1 ].href;\n      break;\n    case \"linebreak\":\n      jsonml[ 0 ] = \"br\";\n    break;\n    case \"link\":\n      jsonml[ 0 ] = \"a\";\n      break;\n    case \"link_ref\":\n      jsonml[ 0 ] = \"a\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.href = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n    case \"img_ref\":\n      jsonml[ 0 ] = \"img\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.src = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n  }\n\n  // convert all the children\n  i = 1;\n\n  // deal with the attribute node, if it exists\n  if ( attrs ) {\n    // if there are keys, skip over it\n    for ( var key in jsonml[ 1 ] ) {\n        i = 2;\n        break;\n    }\n    // if there aren't, remove it\n    if ( i === 1 ) {\n      jsonml.splice( i, 1 );\n    }\n  }\n\n  for ( ; i < jsonml.length; ++i ) {\n    jsonml[ i ] = convert_tree_to_html( jsonml[ i ], references, options );\n  }\n\n  return jsonml;\n}\n\n\n// merges adjacent text nodes into a single node\nfunction merge_text_nodes( jsonml ) {\n  // skip the tag name and attribute hash\n  var i = extract_attr( jsonml ) ? 2 : 1;\n\n  while ( i < jsonml.length ) {\n    // if it's a string check the next item too\n    if ( typeof jsonml[ i ] === \"string\" ) {\n      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === \"string\" ) {\n        // merge the second string into the first and remove it\n        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];\n      }\n      else {\n        ++i;\n      }\n    }\n    // if it's not a string recurse\n    else {\n      merge_text_nodes( jsonml[ i ] );\n      ++i;\n    }\n  }\n}\n\n} )( (function() {\n  if ( typeof exports === \"undefined\" ) {\n    window.markdown = {};\n    return window.markdown;\n  }\n  else {\n    return exports;\n  }\n} )() );\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/markdown/markdown.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/markdown/images/new-markdown-button": {
            "title": "$:/plugins/tiddlywiki/markdown/images/new-markdown-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n    </g>\n</svg>"
        },
        "$:/plugins/tiddlywiki/markdown/new-markdown-button": {
            "title": "$:/plugins/tiddlywiki/markdown/new-markdown-button",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}",
            "description": "{{$:/language/Buttons/NewMarkdown/Hint}}",
            "list-after": "$:/core/ui/Buttons/new-tiddler",
            "text": "<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/x-markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/plugins/tiddlywiki/markdown/readme": {
            "title": "$:/plugins/tiddlywiki/markdown/readme",
            "text": "This is a TiddlyWiki plugin for parsing Markdown text, based on the [[markdown-js|https://github.com/evilstreak/markdown-js]] project from Dominic Baggott. \n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]]\n"
        },
        "$:/plugins/tiddlywiki/markdown/usage": {
            "title": "$:/plugins/tiddlywiki/markdown/usage",
            "text": "! Markdown Dialects\n\nBy default the markdown parser recognises the original dialect of Markdown [[as described by John Gruber|http://daringfireball.net/projects/markdown/]]. An extended dialect called \"Maruku\" is also included that provides table support and other advanced features. The syntax extensions are modelled on those of [[PHP Markdown Extra|https://michelf.ca/projects/php-markdown/extra/]].\n\nThe configuration tiddler [[$:/config/markdown/dialect]] determines which dialect is used:\n\n|!Dialect |!Description |\n|Gruber |Standard Markdown |\n|Maruku |Extended Maruku Markdown |\n\n\n! Creating ~WikiLinks\n\nCreate wiki links with the usual Markdown link syntax targeting `#` and the target tiddler title:\n\n```\n[link text](#TiddlerTitle)\n```\n\n! Images\n\nMarkdown image syntax can be used to reference images by tiddler title or an external URI. For example:\n\n```\n![alt text](/path/to/img.jpg \"Title\")\n\n![alt text](Motovun Jack.jpg \"Title\")\n```\n"
        },
        "$:/plugins/tiddlywiki/markdown/wrapper.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the markdown-js parser for use in TiddlyWiki5\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar markdown = require(\"$:/plugins/tiddlywiki/markdown/markdown.js\");\n\nvar CONFIG_DIALECT_TIDDLER = \"$:/config/markdown/dialect\",\n\tDEFAULT_DIALECT = \"Gruber\";\n\nfunction transformNodes(nodes) {\n\tvar results = [];\n\tfor(var index=0; index<nodes.length; index++) {\n\t\tresults.push(transformNode(nodes[index]));\n\t}\n\treturn results;\n}\n\nfunction transformNode(node) {\n\tif($tw.utils.isArray(node)) {\n\t\tvar p = 0,\n\t\t\twidget = {type: \"element\", tag: node[p++]};\n\t\tif(!$tw.utils.isArray(node[p]) && typeof(node[p]) === \"object\") {\n\t\t\twidget.attributes = {};\n\t\t\t$tw.utils.each(node[p++],function(value,name) {\n\t\t\t\twidget.attributes[name] = {type: \"string\", value: value};\n\t\t\t});\n\t\t}\n\t\twidget.children = transformNodes(node.slice(p++));\n\t\t// Massage images into the image widget\n\t\tif(widget.tag === \"img\") {\n\t\t\twidget.type = \"image\";\n\t\t\tif(widget.attributes.alt) {\n\t\t\t\twidget.attributes.tooltip = widget.attributes.alt;\n\t\t\t\tdelete widget.attributes.alt;\n\t\t\t}\n\t\t\tif(widget.attributes.src) {\n\t\t\t\twidget.attributes.source = widget.attributes.src;\n\t\t\t\tdelete widget.attributes.src;\n\t\t\t}\n\t\t}\n\t\t// Convert internal links to proper wikilinks\n\t\tif (widget.tag === \"a\" && widget.attributes.href.value[0] === \"#\") {\n\t\t\twidget.type = \"link\";\n\t\t\twidget.attributes.to = widget.attributes.href;\n\t\t\tif (widget.attributes.to.type === \"string\") {\n\t\t\t\t//Remove '#' before conversion to wikilink\n\t\t\t\twidget.attributes.to.value = widget.attributes.to.value.substr(1);\n\t\t\t}\n\t\t\t//Children is fine\n\t\t\tdelete widget.tag;\n\t\t\tdelete widget.attributes.href;\n\t\t}\n\t\treturn widget;\n\t} else {\n\t\treturn {type: \"text\", text: node};\n\t}\n}\n\nvar MarkdownParser = function(type,text,options) {\n\tvar dialect = options.wiki.getTiddlerText(CONFIG_DIALECT_TIDDLER,DEFAULT_DIALECT),\n\t\tmarkdownTree = markdown.toHTMLTree(text,dialect),\n\t\tnode = $tw.utils.isArray(markdownTree[1]) ? markdownTree.slice(1) : markdownTree.slice(2);\n\tthis.tree = transformNodes(node);\n};\n\n/*\n\n[ 'html',\n  [ 'p', 'something' ],\n  [ 'h1',\n    'heading and ',\n    [ 'strong', 'other' ] ] ]\n\n*/\n\nexports[\"text/x-markdown\"] = MarkdownParser;\n\n})();\n\n",
            "title": "$:/plugins/tiddlywiki/markdown/wrapper.js",
            "type": "application/javascript",
            "module-type": "parser"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js": {
            "text": "(function(doc) {\n\nfunction _exposeIosHtml5DragDropShim(config) {\n  log = noop; // noOp, remove this line to enable debugging\n\n  var coordinateSystemForElementFromPoint;\n\n  var DRAG_OVER_EMIT_FREQ = 50;\n\n  function main() {\n    config = config || {};\n    if (!config.hasOwnProperty(\"simulateAnchorClick\")) config.simulateAnchorClick = true;\n\n    coordinateSystemForElementFromPoint = navigator.userAgent.match(/OS [1-4](?:_\\d+)+ like Mac/) ? \"page\" : \"client\";\n\n    var div = doc.createElement('div');\n    var dragDiv = 'draggable' in div;\n    var evts = 'ondragstart' in div && 'ondrop' in div;\n\n    var needsPatch = !(dragDiv || evts) || /iPad|iPhone|iPod|Android/.test(navigator.userAgent);\n    log((needsPatch ? \"\" : \"not \") + \"patching html5 drag drop\");\n\n    if(!needsPatch) {\n      return;\n    }\n\n    if(!config.enableEnterLeave) {\n      DragDrop.prototype.synthesizeEnterLeave = noop;\n    }\n\n    if(config.holdToDrag){\n      doc.addEventListener(\"touchstart\", touchstartDelay(config.holdToDrag), {passive:false});\n    }\n    else {\n      doc.addEventListener(\"touchstart\", touchstart, {passive:false});\n    }\n  }\n\n  function DragDrop(event, el) {\n\n    this.dragData = {};\n    this.dragDataTypes = [];\n    this.dragImage = null;\n    this.dragImageTransform = null;\n    this.dragImageWebKitTransform = null;\n    this.customDragImage = null;\n    this.customDragImageX = null;\n    this.customDragImageY = null;\n    this.el = el || event.target;\n    this.dragOverTimer = null;\n    this.lastMoveEvent = null;\n\n    log(\"dragstart\");\n\n    if (this.dispatchDragStart()) {\n      this.createDragImage();\n      this.listen();\n    }\n  }\n\n  DragDrop.prototype = {\n    listen: function() {\n      var move = onEvt(doc, \"touchmove\", this.move, this);\n      var end = onEvt(doc, \"touchend\", ontouchend, this);\n      var cancel = onEvt(doc, \"touchcancel\", cleanup, this);\n\n      function ontouchend(event) {\n        this.dragend(event, event.target);\n        cleanup.call(this);\n      }\n      function cleanup() {\n        log(\"cleanup\");\n        this.dragDataTypes = [];\n        if (this.dragImage !== null) {\n          this.dragImage.parentNode.removeChild(this.dragImage);\n          this.dragImage = null;\n          this.dragImageTransform = null;\n          this.dragImageWebKitTransform = null;\n        }\n        this.customDragImage = null;\n        this.customDragImageX = null;\n        this.customDragImageY = null;\n        this.el = this.dragData = null;\n        return [move, end, cancel].forEach(function(handler) {\n          return handler.off();\n        });\n      }\n    },\n    move: function(event) {\n      event.preventDefault();\n      var pageXs = [], pageYs = [];\n      [].forEach.call(event.changedTouches, function(touch) {\n        pageXs.push(touch.pageX);\n        pageYs.push(touch.pageY);\n      });\n\n      var x = average(pageXs) - (this.customDragImageX || parseInt(this.dragImage.offsetWidth, 10) / 2);\n      var y = average(pageYs) - (this.customDragImageY || parseInt(this.dragImage.offsetHeight, 10) / 2);\n      this.translateDragImage(x, y);\n\n      this.synthesizeEnterLeave(event);\n      this.synthesizeOver(event);\n    },\n    // We use translate instead of top/left because of sub-pixel rendering and for the hope of better performance\n    // http://www.paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/\n    translateDragImage: function(x, y) {\n      var translate = \"translate(\" + x + \"px,\" + y + \"px) \";\n\n      if (this.dragImageWebKitTransform !== null) {\n        this.dragImage.style[\"-webkit-transform\"] = translate + this.dragImageWebKitTransform;\n      }\n      if (this.dragImageTransform !== null) {\n        this.dragImage.style.transform = translate + this.dragImageTransform;\n      }\n    },\n    synthesizeEnterLeave: function(event) {\n      var target = elementFromTouchEvent(this.el,event)\n      if (target != this.lastEnter) {\n        if (this.lastEnter) {\n          this.dispatchLeave(event);\n        }\n        this.lastEnter = target;\n        if (this.lastEnter) {\n          this.dispatchEnter(event);\n        }\n      }\n    },\n    synthesizeOver: function(event) {\n      this.lastMoveEvent = event;\n      if(this.lastEnter && !this.dragOverTimer) {\n        this.dragOverTimer = setInterval(this.dispatchOver.bind(this), DRAG_OVER_EMIT_FREQ);\n      }\n    },\n    clearDragOverTimer: function() {\n      if(this.dragOverTimer) {\n        clearInterval(this.dragOverTimer);\n        this.dragOverTimer = null;\n      }\n    },\n    dragend: function(event) {\n\n      // we'll dispatch drop if there's a target, then dragEnd.\n      // drop comes first http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#drag-and-drop-processing-model\n      log(\"dragend\");\n\n      if (this.lastEnter) {\n        this.dispatchLeave(event);\n      }\n\n      var target = elementFromTouchEvent(this.el,event)\n      if (target) {\n        log(\"found drop target \" + target.tagName);\n        this.dispatchDrop(target, event);\n      } else {\n        log(\"no drop target\");\n      }\n\n      var dragendEvt = doc.createEvent(\"Event\");\n      dragendEvt.initEvent(\"dragend\", true, true);\n      this.el.dispatchEvent(dragendEvt);\n      this.clearDragOverTimer();\n    },\n    dispatchDrop: function(target, event) {\n      var dropEvt = doc.createEvent(\"Event\");\n      dropEvt.initEvent(\"drop\", true, true);\n\n      var touch = event.changedTouches[0];\n      var x = touch[coordinateSystemForElementFromPoint + 'X'];\n      var y = touch[coordinateSystemForElementFromPoint + 'Y'];\n\n      var targetOffset = getOffset(target);\n\n      dropEvt.offsetX = x - targetOffset.x;\n      dropEvt.offsetY = y - targetOffset.y;\n\n      dropEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this),\n        dropEffect: \"move\"\n      };\n      dropEvt.preventDefault = function() {\n        // https://www.w3.org/Bugs/Public/show_bug.cgi?id=14638 - if we don't cancel it, we'll snap back\n      }.bind(this);\n\n      once(doc, \"drop\", function() {\n        log(\"drop event not canceled\");\n      },this);\n\n      target.dispatchEvent(dropEvt);\n    },\n    dispatchEnter: function(event) {\n\n      var enterEvt = doc.createEvent(\"Event\");\n      enterEvt.initEvent(\"dragenter\", true, true);\n      enterEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this)\n      };\n\n      var touch = event.changedTouches[0];\n      enterEvt.pageX = touch.pageX;\n      enterEvt.pageY = touch.pageY;\n      enterEvt.clientX = touch.clientX;\n      enterEvt.clientY = touch.clientY;\n\n      this.lastEnter.dispatchEvent(enterEvt);\n    },\n    dispatchOver: function() {\n\n      var overEvt = doc.createEvent(\"Event\");\n      overEvt.initEvent(\"dragover\", true, true);\n      overEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this)\n      };\n\n      var touch = this.lastMoveEvent.changedTouches[0];\n      overEvt.pageX = touch.pageX;\n      overEvt.pageY = touch.pageY;\n      overEvt.clientX = touch.clientX;\n      overEvt.clientY = touch.clientY;\n\n      this.lastEnter.dispatchEvent(overEvt);\n    },\n    dispatchLeave: function(event) {\n\n      var leaveEvt = doc.createEvent(\"Event\");\n      leaveEvt.initEvent(\"dragleave\", true, true);\n      leaveEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this)\n      };\n\n      var touch = event.changedTouches[0];\n      leaveEvt.pageX = touch.pageX;\n      leaveEvt.pageY = touch.pageY;\n      leaveEvt.clientX = touch.clientX;\n      leaveEvt.clientY = touch.clientY;\n\n      this.lastEnter.dispatchEvent(leaveEvt);\n      this.lastEnter = null;\n      this.clearDragOverTimer();\n    },\n    dispatchDragStart: function() {\n      var evt = doc.createEvent(\"Event\");\n      evt.initEvent(\"dragstart\", true, true);\n      evt.dataTransfer = {\n        setData: function(type, val) {\n          this.dragData[type] = val;\n          if (this.dragDataTypes.indexOf(type) == -1) {\n            this.dragDataTypes[this.dragDataTypes.length] = type;\n          }\n          return val;\n        }.bind(this),\n        setDragImage: function(el, x, y){\n          this.customDragImage = el;\n          this.customDragImageX = x\n          this.customDragImageY = y\n        }.bind(this),\n        dropEffect: \"move\"\n      };\n      return this.el.dispatchEvent(evt);\n    },\n    createDragImage: function() {\n      if (this.customDragImage) {\n        this.dragImage = this.customDragImage.cloneNode(true);\n        duplicateStyle(this.customDragImage, this.dragImage);\n      } else {\n        this.dragImage = this.el.cloneNode(true);\n        duplicateStyle(this.el, this.dragImage);\n      }\n      this.dragImage.style.opacity = \"0.5\";\n      this.dragImage.style.position = \"absolute\";\n      this.dragImage.style.left = \"0px\";\n      this.dragImage.style.top = \"0px\";\n      this.dragImage.style.zIndex = \"999999\";\n\n      var transform = this.dragImage.style.transform;\n      if (typeof transform !== \"undefined\") {\n        this.dragImageTransform = \"\";\n        if (transform != \"none\") {\n          this.dragImageTransform = transform.replace(/translate\\(\\D*\\d+[^,]*,\\D*\\d+[^,]*\\)\\s*/g, '');\n        }\n      }\n\n      var webkitTransform = this.dragImage.style[\"-webkit-transform\"];\n      if (typeof webkitTransform !== \"undefined\") {\n        this.dragImageWebKitTransform = \"\";\n        if (webkitTransform != \"none\") {\n          this.dragImageWebKitTransform = webkitTransform.replace(/translate\\(\\D*\\d+[^,]*,\\D*\\d+[^,]*\\)\\s*/g, '');\n        }\n      }\n\n      this.translateDragImage(-9999, -9999);\n\n      doc.body.appendChild(this.dragImage);\n    }\n  };\n\n  // delayed touch start event\n  function touchstartDelay(delay) {\n    return function(evt){\n      var el = evt.target;\n\n      do {\n        if (elementIsDraggable(el)) {\n          var heldItem = function() {\n            end.off();\n            cancel.off();\n            scroll.off();\n            touchstart(evt);\n          };\n\n          var onReleasedItem = function() {\n            end.off();\n            cancel.off();\n            scroll.off();\n            clearTimeout(timer);\n          };\n\n          var timer = setTimeout(heldItem, delay);\n\n          var end = onEvt(el, 'touchend', onReleasedItem, this);\n          var cancel = onEvt(el, 'touchcancel', onReleasedItem, this);\n          var scroll = onEvt(window, 'scroll', onReleasedItem, this);\n          break;\n        }\n      } while ((el = el.parentNode) && el !== doc.body);\n    };\n  };\n\n  // event listeners\n  function touchstart(evt) {\n    var el = evt.target;\n    do {\n      if (elementIsDraggable(el)) {\n        handleTouchStartOnAnchor(evt, el);\n\n        evt.preventDefault();\n        new DragDrop(evt,el);\n        break;\n      }\n    } while((el = el.parentNode) && el !== doc.body);\n  }\n\n  function elementIsDraggable(el){\n    // if an element is not draggable either explicitly or implicitly we can exit immediately\n    if(!el.draggable) return false;\n\n    // if an element has been explicitly set to be draggable we're good to go\n    if(el.hasAttribute(\"draggable\")) return true;\n\n    // otherwise we investigate the implicit option\n    return (!config.requireExplicitDraggable);\n  }\n\n  function elementIsAnchor(el){\n    return el.tagName.toLowerCase() == \"a\";\n  }\n\n  function handleTouchStartOnAnchor(evt, el){\n    // If draggable isn't explicitly set for anchors, then simulate a click event.\n    // Otherwise plain old vanilla links will stop working.\n    // https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events#Handling_clicks\n    if (!el.hasAttribute(\"draggable\") && elementIsAnchor(el) && config.simulateAnchorClick) {\n      var clickEvt = document.createEvent(\"MouseEvents\");\n      clickEvt.initMouseEvent(\"click\", true, true, el.ownerDocument.defaultView, 1,\n        evt.screenX, evt.screenY, evt.clientX, evt.clientY,\n        evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, null);\n      el.dispatchEvent(clickEvt);\n      log(\"Simulating click to anchor\");\n    }\n  }\n\n  // DOM helpers\n  function elementFromTouchEvent(el,event) {\n    var touch = event.changedTouches[0];\n    var target = doc.elementFromPoint(\n      touch[coordinateSystemForElementFromPoint + \"X\"],\n      touch[coordinateSystemForElementFromPoint + \"Y\"]\n    );\n    return target;\n  }\n\n  //calculate the offset position of an element (relative to the window, not the document)\n  function getOffset(el) {\n    var rect = el.getBoundingClientRect();\n    return {\n      \"x\": rect.left,\n      \"y\": rect.top\n    };\n  }\n\n  function onEvt(el, event, handler, context) {\n    if(context) {\n      handler = handler.bind(context);\n    }\n    el.addEventListener(event, handler, {passive:false});\n    return {\n      off: function() {\n        return el.removeEventListener(event, handler, {passive:false});\n      }\n    };\n  }\n\n  function once(el, event, handler, context) {\n    if(context) {\n      handler = handler.bind(context);\n    }\n    function listener(evt) {\n      handler(evt);\n      return el.removeEventListener(event,listener);\n    }\n    return el.addEventListener(event,listener);\n  }\n\n  // duplicateStyle expects dstNode to be a clone of srcNode\n  function duplicateStyle(srcNode, dstNode) {\n    // Is this node an element?\n    if (srcNode.nodeType == 1) {\n      // Remove any potential conflict attributes\n      dstNode.removeAttribute(\"id\");\n      dstNode.removeAttribute(\"class\");\n      dstNode.removeAttribute(\"style\");\n      dstNode.removeAttribute(\"draggable\");\n\n      // Clone the style\n      var cs = window.getComputedStyle(srcNode);\n      for (var i = 0; i < cs.length; i++) {\n        var csName = cs[i];\n        dstNode.style.setProperty(csName, cs.getPropertyValue(csName), cs.getPropertyPriority(csName));\n      }\n\n      // Pointer events as none makes the drag image transparent to document.elementFromPoint()\n      dstNode.style.pointerEvents = \"none\";\n    }\n\n    // Do the same for the children\n    if (srcNode.hasChildNodes()) {\n      for (var j = 0; j < srcNode.childNodes.length; j++) {\n        duplicateStyle(srcNode.childNodes[j], dstNode.childNodes[j]);\n      }\n    }\n  }\n\n  // general helpers\n  function log(msg) {\n    console.log(msg);\n  }\n\n  function average(arr) {\n    if (arr.length === 0) return 0;\n    return arr.reduce((function(s, v) {\n      return v + s;\n    }), 0) / arr.length;\n  }\n\n  function noop() {}\n\n  main();\n\n};\n\nif (typeof module === 'object' && typeof module.exports === 'object') {\n  module.exports = _exposeIosHtml5DragDropShim;\n} else if (typeof window !== 'undefined') {\n  _exposeIosHtml5DragDropShim(window.iosDragDropShim);\n}\n})(document);",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/license": {
            "text": "Copyright (c) 2013 Tim Ruffles\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
            "type": "text/plain",
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/license"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/rawmarkup": {
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/rawmarkup",
            "tags": "$:/tags/RawMarkupWikified",
            "text": "`<script>\nvar iosDragDropShim = { enableEnterLeave: true, holdToDrag: 300 };`\n{{$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js}}\n`</script>`\n"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/readme": {
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/readme",
            "text": "This plugin provides a \"shim\" that enables HTML 5 compatible drag and drop operations on mobile browsers, including iOS and Android. The shim was created by Tim Ruffles and is published at https://github.com/timruffles/ios-html5-drag-drop-shim.\n\nAfter installing the plugin it is necessary to save the HTML file a second time before it will be fully enabled.\n"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/startup.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/mobiledragdrop/startup.js\ntype: application/javascript\nmodule-type: startup\n\nStartup initialisation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"mobiledragdrop\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\twindow.addEventListener(\"touchmove\", function() {});\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/startup.js",
            "type": "application/javascript",
            "module-type": "startup"
        }
    }
}
{
    "tiddlers": {
        "$:/config/AnimationDuration": {
            "text": "600",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/config/AnimationDuration",
            "tags": "$:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "venomspinner",
            "modified": "20161031174446166",
            "creator": "venomspinner",
            "created": "20161028170329291",
            "bag": "default"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"no\" retain=\"yes\" animate=\"yes\">\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161031174446017",
            "created": "20161030145349771",
            "bag": "default"
        },
        "$:/core/ui/TopBar/menu": {
            "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\" default=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"roundbtn\">\n<span>{{$:/core/images/right-arrow}}</span>\n{{$:/irreverent-mudblood/overlay-sidebar/backgroundstyle}}\n</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\" default=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"roundbtn\"><span>{{$:/core/images/left-arrow}}</span>\n{{$:/irreverent-mudblood/overlay-sidebar/backgroundstyle2}}\n</$button>\n</$reveal>\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "Dr. Rizwan Ishak",
            "modified": "20161031174446206",
            "creator": "Dr. Rizwan Ishak",
            "created": "20161002082547234",
            "bag": "default"
        },
        "$:/DefaultTiddlers": {
            "text": "[!is[system]![TableOfContents]!sort[modified]limit[3]]\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/DefaultTiddlers",
            "modified": "20161111182143694",
            "created": "20131127215321439"
        },
        "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle": {
            "created": "20161030153934135",
            "text": "<style>\n@media only screen and (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-sidebar-scrollable { \nbackground-color: #FEFEFE; \nz-index: 1000 !important;\npadding: 42px 0 28px 42px;\nborder-left: 1px solid #e1e1e1;\n}\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-sidebar-scrollable { \nposition:fixed !important;\nbackground-color:#FEFEFE; \npadding: 42px 0 28px 42px;\nz-index: 1000 !important; \nwidth:100% !important ; \nborder-left: 1px solid #e1e1e1;\nleft:0% !important;\ntop: 0px !important;\nbottom: 0 !important;\nright: 0 !important;\nmargin: 0 0 0 -20px !important;\n}\n}\n</style>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle",
            "tags": "$:/OverlaySidebar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161109105829329",
            "bag": "default"
        },
        "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle2": {
            "text": "<style>.tc-sidebar-scrollable { background-color: rgba(0,0,0,0.0); z-index: -1; }</style>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle2",
            "tags": "$:/OverlaySidebar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "Dr. Rizwan Ishak",
            "modified": "20161031174446321",
            "creator": "Dr. Rizwan Ishak",
            "created": "20160829073842702",
            "bag": "default"
        },
        "$:/irreverent-mudblood/overlay-sidebar/stylesheet": {
            "created": "20161030153009897",
            "text": ".roundbtn {\nbackground-color:{{!!roundbtnbg}};\nfont-size: 25px; \nposition: relative;\ndisplay: inline-block;\nwidth: 35px;\nheight: 35px;\ncursor: pointer; \nborder: none; \nborder-radius:100px; \nbox-shadow: 0 2px 5px 0 rgba(0, 0, 0, .26);\n\n}\n\n.roundbtn span svg{\nfont-size:15px;  \nposition: absolute;  \ntop: 0;  right: 0;    \nbottom: 0;    \nleft: 0;    \noverflow: auto;    \nwidth: 50%;    \nheight: 50%;    \nmargin: auto; \nopacity: 0.8;\nfill: {{!!roundbtnspan}};\n\n}\n.roundbtn:hover span svg{\nfont-size:15px;  \nposition: absolute;  \ntop: 0;  right: 0;    \nbottom: 0;    \nleft: 0;    \noverflow: auto;    \nmargin: auto; \nopacity:1;\nfill: {{!!roundbtnspan}} !important;\n}",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/irreverent-mudblood/overlay-sidebar/stylesheet",
            "tags": "$:/tags/Stylesheet $:/OverlaySidebar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161111175422374",
            "bag": "default",
            "roundbtnbg": "#ee4056",
            "roundbtnspan": "#fff"
        },
        "$:/themes/ghostwriter/stylesheet/main": {
            "text": " \n---\n/* System */\n\n .tc-control-panel table .autowidthinput input {width:auto;}\n\n.tc-sidebar-lists .tc-tab-set > .tc-tab-content .tc-image-button img { margin: 0 !important; display:inline-block } \n\n---\n/*Base*/\n\n---\n\nhtml, body {\n  height: 100%;\n }\n\nbody {\n  background: #fefefe;\n  color: #424242;\n  font-family: \"Open Sans\", arial, sans-serif  !important;\n  font-size: 15px;\n }\n\n\n\nh1, h2, h3, h4, h5, h6 {\n  margin-bottom: 33px;\n  text-transform: none; \n}\n\nh1 {\n  font-size: 26px; }\n\nh2 {\n  font-size: 24px; }\n\nh3 {\n  font-size: 20px;\n  margin-bottom: 20px; }\n\nh4 {\n  font-size: 18px;\n  margin-bottom: 18px; }\n\nh5 {\n  font-size: 16px;\n  margin-bottom: 15px; }\n\nh6 {\n  font-size: 14px;\n  margin-bottom: 12px; }\n\np {\n  line-height: 1.8;\n  margin: 0 0 30px; }\n\na {\n  text-decoration: none; !important}\n\nul, ol {\n  list-style-position: inside ;\n  line-height: 1.8 ;\n  margin: 0 0 40px;\n  padding: 0 }\n  ul ul, ul ol, ol ul, ol ol {\n    margin: 10px 0 0 20px  }\n  ul li, ol li {\n    margin: 0 0 10px }\n    ul li:last-of-type, ol li:last-of-type {\n      margin-bottom: 0 }\n\nblockquote {\n  border-left: 1px dotted #303030;\n  margin: 40px 0;\n  padding: 5px 30px; }\n  blockquote p {\n    color: #AEADAD;\n    display: block;\n    font-style: italic;\n    margin: 0;\n    width: 100%; }\n\nimg {\n  display: block;\n  margin: 40px 0;\n  width: auto ;\n  max-width: 100%}\n\npre {\n  background: #F1F0EA !important;\n  border: 1px solid #DDDBCC !important;\n  border-radius: 3px !important;\n  margin: 0 0 40px !important;\n  padding: 15px 20px !important; }\n\nhr {\n  border: none !important;\n  border-bottom: 1px dotted #303030 !important;\n  margin: 45px 0 !important; }\n\ntable {\n    margin-bottom: 40px !important;\n    width: 100% !important;\n}\ntable tbody > tr:nth-child(odd) > td,\ntable tbody > tr:nth-child(odd) > th {\n    background-color: #f7f7f3 !important;\n}\ntable th {\n    padding: 0 10px 10px !important;\n    text-align: left !important;\n}\ntable td {\n    padding: 10px !important;\n}\ntable tr {\n    border-bottom: 1px dotted #AEADAD !important;\n}\n\n::selection {\n  background: #FFF5B8 !important;\n  color: #000 !important;\n  display: block !important; }\n\n::-moz-selection {\n  background: #FFF5B8 !important;\n  color: #000 !important;\n  display: block !important; }\n\n\n.hidden {\n  text-indent: -9999px !important;\n  visibility: hidden !important;\n  display: none !important; }\n\n.clearfix:after {\n  content: \"\" !important;\n  display: table !important;\n  clear: both !important; }\n\ncode {\nbackground:transparent !important;\nborder:none !important;\n}\n\n\n\n\n---\n/*Title*/\n\n---\n.tc-titlebar h2.tc-title {\n\tfont-size: 52px;\n\tdisplay: block;\n\tfont-weight: 700;\n\tmargin: 15px 0;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tcolor: #424242;\n\tfill: #424242 !important;\n\tword-wrap: break-word;\n\tfont-family: \"Open Sans\", arial, sans-serif;\n\tmargin-block-start: 1em;\n\tmargin-block-end: 1em;\n\tline-height: 1.2;\n\tmargin-bottom: 10px;\n}\n.titleclass {\n\tfont-size: 52px;\n\tdisplay: block;\n\tfont-weight: 700;\n\tmargin: 15px 0;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tcolor: #424242;\n\tfill: #424242 !important;\n\tword-wrap: break-word;\n\tfont-family: \"Open Sans\", arial, sans-serif;\n\tmargin-block-start: 1em;\n\tmargin-block-end: 1em;\n\tline-height: 1.2;\n\tmargin-bottom: 10px;\n}\n\n.tc-tiddler-title::after {\n\tborder-bottom: 1px dotted #303030;\n\tcontent: \"\";\n\tdisplay: block;\n\tmargin: 30px auto 0;\n\twidth: 100px;\n}\n\ndiv.tc-tagged-interface h2.tc-title, div.tc-tagged-interface div.tc-subtitle, div.tc-tagged-interface div.tc-tags-wrapper {display:none;}\n\n@media only screen and (max-width: 768px) {\n.tc-titlebar h2.tc-title {font-size: 28px;font-size:{{$:/themes/ghostwriter/user/mobile!!titlesize}}; margin-top: 40px !important;}\n.tc-site-title, .tc-titlebar{font-size:2em !important;}\n.titleclass {font-size: 28px !important; margin-top: 40px !important;}\n}\n\ntc-tagged-Interface .tc-title {display:none;}\n\n\n/* Subtitle */\n\ndiv.tc-tiddler-frame .tc-subtitle {\n\tcolor: #AEADAD;\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tline-height: 1;\n\tmargin: 25px auto 0;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tdisplay: block;\n\tmargin-block-start: 1em;\n\tmargin-block-end: 1em;\n\tpadding-bottom: 25px;\n}\n.tc-subtitle>a{\ndisplay:none !important;\n}\n\n<$reveal type=nomatch state=\"$:/status/UserName\" text=\"\">\n.tc-subtitle:after{\ncontent: \"BY: {{$:/status/UserName}}\";\nfont-weight:700;\n}\n</$reveal>\n\n\n/* Body */\n\ndiv.tc-tiddler-frame > .tc-tiddler-body {\n\tmargin: 0 auto;\n\tposition: relative;\n\twidth: 100%;\n\tmax-width: 810px;\n\tborder-top: 6px solid #303030;\n\tpadding-top: 50px;\n}\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\ndiv.tc-tiddler-frame > .tc-tiddler-body {\n  font-size: {{$:/themes/ghostwriter/user/mobile!!fontsize}};\n }\n}\n\n/* Tags */\n\nbutton.tc-tag-label, span.tc-tag-label {\nfont-size:14px !important;\nline-height: normal !important;\nbackground: transparent !important;\ntext-decoration: none !important;\ncolor:#666 !important;\n}\n\n/* The tags in the viewTemplate has inbuilt style. Hence the use to 'important' to overcome that*/\ndiv.tc-tiddler-frame > div.tc-reveal >div.tc-tags-wrapper >span.tc-tag-list-item> button  {\ncolor: {{!!theme_color}} !important;\n}\n\n\n.tc-edit-tags .tc-tiddlylink.tc-tiddlylink-missing:hover, .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-resolves:hover, .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-shadow:hover  {\n    border-bottom: none !important;\npadding: 4px 14px 4px 14px !important;\n}\n\n/* Links */\n\n.tc-body a:hover {\n  border-bottom: 1px dotted {{!!theme_color}};\n  }\n\n.tc-body a.tc-tiddlylink-missing {\n\tfont-style: normal !important;\n\tcolor: #237095 !important;\n}\na.tc-tiddlylink-missing:hover, button.tc-tiddlylink:hover, a.tc-tiddlylink:hover {\n text-decoration: none !important;\n  border-bottom: 1px dotted {{!!theme_color}} !important;\n}\na.tc-tiddlylink-external {\n\ttext-decoration: none !important;\n\tcolor: #3C2BB1 !important;\n\tbackground-color: inherit !important;\n}\na.tc-tiddlylink-external:hover {\n  border-bottom: 1px dotted {{!!theme_color}} !important;\n}\n\n.tc-tag-list-item > span > div.tc-menu-list-item > a:hover {\nborder-bottom: none !important;\npadding: 0 14px 0 14px !important;\n}\n\ntc-block-dropdown tc-search-drop-down tc-popup-handle {\nborder-bottom: none !important;\npadding:initial !important;\n}\n\ndiv.tc-menu-list-item > a:hover {\nborder-bottom:none !important;\n}\n\n\n/* Tag Drop Down */\n\n.tc-edit-tags .tc-block-dropdown{\n    position: absolute !important;\n    min-width: 220px !important;\n    background-color: #FEFEFE !important;\n    white-space: nowrap !important;\n    z-index: 1000 !important;\n    text-shadow: none !important;\n    color: #606060 !important;\n    font-family: gotham, helvetica, arial, sans-serif !important;\n    font-size: 13px ;\n    font-weight: 500 !important;\n    right: 70% !important;\n    padding: 15px 7px !important;\n    border: 3px solid rgba(217, 217, 217, .4) !important;\n    border-top: 1px solid rgba(217, 217, 217, .4) !important;\n    border-left: 1px solid rgba(217, 217, 217, .4) !important;\n    margin: 1rem !important;\n    margin-top: 4px !important;\n    text-overflow: ellipsis !important;\n    box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important;\n}\n\n---\n/* Site Header */\n\n---\n\n.site-header {\n    padding: 60px 0 0 !important;\n    overflow: auto !important;\n    text-align: center !important;\n    text-transform: uppercase !important;\n}\n.site-title-wrapper {\n    display: table !important;\n    margin: 0 auto !important;\n}\n.site-title {\n    float: left !important;\n    font-size: 14px !important;\n    font-weight: 600 !important;\n    margin: 0 !important;\n    text-transform: uppercase !important;\n}\n.site-title a {\n\tfloat: left !important;\n\tbackground: #f03838 !important;\n\tcolor: #FEFEFE !important;\n\tpadding: 8px 10px 8px !important;\n\tfont-weight: normal;\n\t-webkit-user-select: inherit;\n}\n.site-title a:hover {\n    background: #303030 !important;\n    border-bottom: none !important;\n}\n.site-logo {\n    display: block !important;\n}\n.site-logo img {\n    margin: 0 !important;\n}\n.site-nav {\n    list-style: none !important;\n    margin: 28px 0 10px !important;\n}\n\n.site-nav-item {\n    display: inline-block !important;\n    font-size: 14px !important;\n    font-weight: 700 !important;\n    margin: 0 10px !important;\n    text-transform: uppercase !important;\n    color: {{!!theme_color}} !important;\n    text-decoration: none !important;\n    padding-right: 15px !important;\n    font-family: \"Open Sans\", arial, sans-serif !important;\n    line-height: 1.8 !important;\n    text-align: center !important;\n}\n.site-nav-item:hover {\n    color: #424242 !important;\n}\n\n---\n/* Site Subtitle */\n\n---\n\n.subtitleclass {\nfont-family:{{!!sitesubtitlefont}};\ncolor:#f03838;\ntext-transform: none;\nfont-size:{{!!sitesubtitlefontsize}};\n}\n\n\n\n---\n/* Table of Contents */\n\n---\n\n\n.post-stub-title {\ndisplay: inline-block;\nmargin: 0 !important;\ntext-transform: none !important;\nfont-size: 16px !important;\n}\n\n.post-index{\nmargin: 0 auto !important;\nposition: relative !important;\nwidth: 100% !important;\nmax-width: 889px !important;\n}\n\n.post-index ol {\nlist-style: none !important;\ndisplay: block !important;\nmargin-block-start: 1em !important;\nmargin-block-end: 1em !important;\n\n}\n.post-index li li a {\nfont-weight: 900 !important;\npadding-inline-start: 5px !important;\nmargin: 0 0 0 !important;\npadding: 0 0 0 25px !important;\ntransition: all 0.2s ease-in-out !important;\n}\n\n.post-index li li a:hover{\npadding: 20px 12px !important;\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.post-index li li a {padding: 0 !important;}\n.post-index li li a:hover {padding: 0 !important;}\n}\n.post-stub {\ncolor: #424242 !important;\nfont-family: \"Open Sans\", arial, sans-serif !important;\nfont-size: 18px !important;\nline-height: 1.8 !important;\ndisplay: list-item !important;\ntext-align: match-parent !important;\nborder-bottom: 1px dotted #303030 !important;\nmargin: 0 !important;\nposition: relative !important;\npadding: 20px 5px !important;\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.post-stub {font-size: 15px !important;line-height: 1.5 !important;}\n.post-stub .tc-btn-invisible {padding: 0 25px 0 0;}\n.post-stub-date {display:none;}\n.post-stub-title {display: inline;}\n.post-stub button svg.tc-image-right-arrow {\n\theight: 1.5em;\n\twidth: 1.5em;\n\tbackground: #fea;\n\tborder-radius: 50%;\n\tpadding: 3px;}\n}\n\n.post-stub a {\n color: #424242 !important;\npadding-inline-start: 10px !important;\nmargin: 80px 40px 0 !important;\npadding: 35px 0 0 !important;\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.post-stub a {margin: 0 !important;}\n}\n.post-stub a:hover{\ncolor:{{!!theme_color}} !important;\noutline: 0 !important;\nborder-bottom:none !important;\n}\n\n\n---\n/*Theme Sake */\n\n---\n\n.tc-tiddler-frame {\n    padding: 0 42px 42px 42px !important;\n}\n\n@media only screen and (max-width: 768px) {\n.tc-tiddler-frame {\n padding: 0 10px 10px 10px !important;\n}\n.tc-story-river {\npadding: 20px !important;\nwidth: 100% !important;\n}\n}\n\n@media (max-width: 960px) {\n.tc-story-river {position:fixed}\n}\n\n---\n/*GENERIC*/\n\n---\n\n.tc-control-panel textarea,\n .tc-control-panel input[type=\"text\"],\n .tc-control-panel input[type=\"search\"],\n .tc-control-panel input[type=\"\"],\n .tc-control-panel input:not([type]),\n .tc-edit-field-value input[type=\"text\"],\n .tc-type-selector input[type=\"text\"] {\n     border: 1px solid #c4c4c4 !important;\n }\n\n\n .tc-block-dropdown {\n     border-radius: 4px !important;\n }\n\n\n .tc-block-dropdown a:hover {\n     background-color: #f0e68c !important;\n }\n\n\n .tc-drop-down {\n     color: #606060 !important;\n     font-family: gotham, helvetica, arial, sans-serif !important;\n     font-size: 13px;\n     font-weight: 500 !important;\n     position: relative;\n     right: 70% !important;\n     padding: 15px 7px !important;\n     border-radius: 2px !important;\n     border: 3px solid rgba(217, 217, 217, .4) !important;\n     border-top: 1px solid rgba(217, 217, 217, .4) !important;\n     border-left: 1px solid rgba(217, 217, 217, .4) !important;\n     margin: 1rem !important;\n     margin-top: 4px !important;\n     min-width: calc(100% + 100px) !important;\n     width: -moz-fit-content !important;\n     overflow: visible !important;\n     text-overflow: ellipsis !important;\n     box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important;\n }\n\n\n .tc-drop-down a:hover,\n .tc-drop-down button:hover,\n .tc-drop-down .tc-file-input-wrapper:hover button {\n     color: #444 !important;\n     background-color: #f0e68c !important;\n     text-decoration: none !important;\n }\n\n\n .tc-titlebar .tc-drop-down {\n     min-width: calc(100% + 30px) !important;\n }\n\n\n .tc-password-wrapper {\n     text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) !important;\n     background-color: #fbfcFe !important;\n     border: 1px solid rgb(225, 225, 225) !important;\n     box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important;\n     height: 300px !important;\n     width: 300px !important;\n }\n\n\n .tc-password-wrapper input {\n     width: 100% !important;\n     color: #000 !important;\n     border: 1px solid rgb(225, 225, 225) !important;\n     padding: 5px !important;\n     margin-bottom: 5px !important;\n }\n\n .tc-password-wrapper button {\n     width: 100% !important;\n     border-radius: 5px !important;\n     text-decoration: none !important;\n     color: #fff !important;\n     background-color: #26a69a !important;\n     text-align: center !important;\n     letter-spacing: .5px !important;\n     transition: .2s ease-out !important;\n     cursor: pointer !important;\n     border: none !important;\n     padding: 5px !important;\n     margin-bottom: 5px !important;\n }\n\n .tc-password-wrapper h1 {\n     color: #666 !important;\n     font-size: 13px;\n     text-transform: uppercase !important;\n     text-align: center !important;\n }\n\n hr {\n     color: #ececec;\n }\n\n .tg td {\n     font-size: 13.5px !important;\n     overflow: hidden !important;\n     padding: .3em !important;\n     word-break: normal !important;\n     border-width: 0 !important;\n }\n\n tr:nth-child(even) {\n     width: 100% !important;\n     background-color: #f6f3f6 !important;\n }\n\n\n---\n /* TIDDLER TOOLBAR */\n\n---\n<$reveal type=\"nomatch\" state=\"$:/themes/ghostwriter/transparencystate\" text=\"none\">\n\n @media only screen and (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n .tc-tiddler-view-frame .tc-tiddler-controls svg {\n     fill: transparent;\n }\n</$reveal>\n<$reveal type=\"match\" state=\"$:/themes/ghostwriter/transparencystate\" text=\"close\">\n .tc-tiddler-view-frame .tc-tiddler-controls svg.tc-image-close-button {fill: #cccccc;}\n</$reveal>\n .tc-tiddler-view-frame .tc-tiddler-controls:hover svg,\n .tc-tiddler-view-frame .tc-tiddler-controls .tc-popup svg {\n     fill: #cccccc;\n }\n}\n\n---\n /* BUTTON ANIMATION */\n\n---\n \n .tc-page-controls svg,\n .tc-tiddler-controls svg,\n .tc-topbar button svg,\n .tc-sidebar-scrollable {\n     -webkit-transition: fill 200ms ease-in-out;\n     -moz-transition: fill 200ms ease-in-out;\n     transition: fill 200ms ease-in-out;\n }\n\n---\n /** * Notification */\n\n---\n \n .tc-notification {\n     position: fixed !important;\n     top: 35px !important;\n     right: 50px !important;\n     z-index: 1300 !important;\n     width: 300px !important;\n     height: 50px !important;\n     background-color: #FABF67 !important;\n     border: none !important;\n     color: black !important;\n     text-align: center !important;\n     line-height: normal !important;\n     padding-top: 10px !important;\n }\n\n---\n /** Search **/\n\n---\n \n input[type='search'] {\n     -webkit-transition: border .1s;\n     transition: border .1s;\n     position: relative;\n     background-color: transparent;\n     border: 1px solid;\n     border-radius: 2px;\n     border-color: #e1e1e1;\n     padding: 10px 40px 9px 8px;\n     margin: 0;\n     outline: none;\n     box-sizing: border-box;\n     width: 100%;\n }\n\n input[type='search']:focus,\n input[type='search'].focus {\n     border-color: #c1c1c1;\n }\n\n\n---\n/*Sidebar*/\n\n--- \n\n.tc-sidebar-lists button {\n    color: {{!!theme_color}};\n    fill: {{!!theme_color}};\n}\n.tc-sidebar-lists .tc-tab-buttons button {\n    display: inline-block !important;\n    font-size: 14px !important;\n    font-weight: 700 !important;\n    margin: 0 10px !important;\n    text-transform: uppercase;\n    color: {{!!theme_color}} !important ;\n    text-decoration: none !important;\n    padding-right: 15px !important;\n    font-family: \"Open Sans\", arial, sans-serif !important;\n    line-height: 1.8 !important;\n    text-align: center !important;\n    padding: 0 !important;\n    background: none !important;\n    border: none !important;\n}\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n    background-color: transparent !important;\n    border-left: none !important;\n    border-top: none !important;\n    border-right: none !important;\n    color: #666 !important;\n}\n\n.tc-sidebar-lists .tc-search .tc-popup-handle {\n    width: 60%;\n}\n.tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button {\n    border: none;\n    outline: none;\n    background: transparent;\n    color: #666;\n    fill: #666;\n}\n.tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal .tc-more-sidebar .tc-tab-set .tc-tab-buttons button.tc-tab-selected {\n    color: blue;\n    fill: blue;\n}\n.tc-sidebar-lists .tc-tab-content i.tc-muted {\n    display: none;\n}\n\n/* Search drop down of Sidebar */\n\n.tc-sidebar-lists .tc-search-drop-down a.tc-tiddlylink:hover{\npadding: 0px 10px 0px 10px;\n}\n\n\n---\n/* Media Queries */\n\n---\n\n\n\n@media only screen and (max-width: 600px) {\n  h1, h2 {\n    margin-bottom: 20px; }\n\n  p {\n    margin-bottom: 20px; }\n\n  ul, ol {\n    margin-bottom: 20px; }\n\n  img {\n    margin: 30px 0; }\n\n  blockquote {\n    margin: 30px 0; }\n\n  pre {\n    margin: 30px 0; }\n\n  hr {\n    margin: 35px 0; }\n\n  .site-header {\n    padding-top: 60px; }\n\n  .site-nav-item {\n    display: block;\n    margin: 15px 0; }\n\n}\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/themes/ghostwriter/stylesheet/main",
            "theme_color": "#f03838",
            "tags": "$:/tags/Stylesheet $:/irreverent-mudblood/ghostwriter",
            "sitesubtitlefontsize": "16px",
            "sitesubtitlefont": "Parisienne, monospace",
            "revision": "0",
            "modifier": "Riz",
            "modified": "20161202041846264",
            "creator": "venomspinner",
            "created": "20161028105046905",
            "bag": "default"
        },
        "$:/themes/ghostwriter/Topbar": {
            "text": "<$reveal state=\"$:/themes/ghostwriter/user/topbarhide\" type=\"nomatch\" text=\"hide\">\n <header class=\"site-header\" style=\"text-align:center;\">\n            <div class=\"container\">\n                <div class=\"site-title-wrapper\">\n                        <h1 class=\"site-title\"><a href=\"#\">{{$:/SiteTitle}}</a></h1>\n                </div>\n\n                <div class=\"site-nav\">\n<$reveal state=\"$:/themes/ghostwriter/user/homehide\" type=\"nomatch\" text=\"hide\"><$button class=\"site-nav-item tc-btn-invisible\" message=\"tm-home\">HOME</$button></$reveal>\n<$reveal state=\"$:/themes/ghostwriter/user/contenthide\" type=\"nomatch\" text=\"hide\"><$button to=\"$:/TableOfContents\" class=\"site-nav-item tc-btn-invisible\">Contents</$button></$reveal>\n<$reveal state=\"$:/themes/ghostwriter/user/abouthide\" type=\"nomatch\" text=\"hide\"><$button to=\"$:/About\" class=\"site-nav-item tc-btn-invisible\">About</$button></$reveal>\n<$list filter=\"[![$:/themes/ghostwriter/topbarbtntemplate]tag[$:/themes/ghostwriter/user/topbarbutton]]\"><$transclude/></$list>\n                </div>\n            </div>\n        </header></$reveal>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/themes/ghostwriter/Topbar",
            "tags": "$:/tags/AboveStory $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "venomspinner",
            "modified": "20161110053524450",
            "creator": "venomspinner",
            "created": "20161028092007386",
            "bag": "default"
        },
        "$:/TableOfContents": {
            "text": "<div class=\"titleclass\"> Table of Contents </div>\n\n<div class=\"post-index\">\n<<tocghost-selective-expandable \"TableOfContents\"\"!sort[modified]\">>\n</div>",
            "title": "$:/TableOfContents",
            "tags": "$:/irreverent-mudblood/ghostwriter interface",
            "modified": "20161110070238232",
            "list": "",
            "created": "20161109082528301"
        },
        "$:/themes/ghostwriter/options": {
            "created": "20161101103541902",
            "creator": "Riz",
            "text": "!!Palette\n|Color theme|<$edit-text tiddler=\"$:/themes/ghostwriter/stylesheet/main\"  type=\"color\" tag=\"input\"  field=\"theme_color\"/><br><$edit-text tiddler=\"$:/themes/ghostwriter/stylesheet/main\"  field=\"theme_color\"/>|\n|Color of the Sidebar Show/Hide Button|<$edit-text tiddler=\"$:/irreverent-mudblood/overlay-sidebar/stylesheet\"  field=\"roundbtnbg\"  type=\"color\" tag=\"input\"/><br><$edit-text tiddler=\"$:/irreverent-mudblood/overlay-sidebar/stylesheet\"  field=\"roundbtnbg\"/>|\n\n!!Edit Toolbar\n|Transparency of Edit Toolbar Buttons |<$select tiddler='$:/themes/ghostwriter/transparencystate'><option value='all'>''All'' </option><option value='close'>All ''except close button''</option><option value='none'>None</option></$select>|\n\n!!Topbar and Pagination\n|Show/Hide Topbar | <span style=\"float:left;\"> <$reveal state=\"$:/themes/ghostwriter/user/topbarhide\" type=\"nomatch\" text=\"hide\"><$button>Hide Topbar<$action-setfield $tiddler=\"$:/themes/ghostwriter/user/topbarhide\" text=\"hide\"/></$button></$reveal><$reveal state=\"$:/themes/ghostwriter/user/topbarhide\" type=\"match\" text=\"hide\"><$button>Show Topbar<$action-setfield $tiddler=\"$:/themes/ghostwriter/user/topbarhide\" text=\"show\"/></$button></$reveal></span>|\n|Add a Top-bar Button|<$button><$action-sendmessage $message=\"tm-new-tiddler\" title=\"New Site Nav Item\" tags=\"$:/themes/ghostwriter/user/topbarbutton\" text={{$:/themes/ghostwriter/topbarbtntemplate}}/>New Top Bar Button</$button>|\n|Show / Hide Default Top-bar Button |<span style=\"float:left;\"> <$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/user/homehide\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> Home</$checkbox>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/user/contenthide\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> Content</$checkbox>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/user/abouthide\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\">&nbsp;About</$checkbox></span>|\n|Pagination|<$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/pagination\" tag=\"$:/tags/BelowStory\">  Display</$checkbox>|\n\n!!Mobile\n|Font Size|^<$edit-text tiddler=\"$:/themes/ghostwriter/user/mobile\" field=\"fontsize\" default=\"\" tag=\"input\"/> |\n|Title Size|^<$edit-text tiddler=\"$:/themes/ghostwriter/user/mobile\" field=\"titlesize\" default=\"28px\" tag=\"input\"/> |\n\n<$button class=\"tc-btn-big-green\" style=\"background-color:#e52d27;width:100%;font-size:14px;\">Remove Ghostwriter\n<$action-deletetiddler $filter=\"[prefix[$:/themes/ghostwriter/user/]]\"/>\n<$action-sendmessage $message=\"tm-delete-tiddler\" $param=\"$:/plugins/venomspinner/ghostwriter\"/>\n</$button>",
            "title": "$:/themes/ghostwriter/options",
            "tags": "$:/tags/ControlPanel/Appearance $:/irreverent-mudblood/ghostwriter",
            "modified": "20161202053044155",
            "caption": "Ghostwriter",
            "modifier": "Riz"
        },
        "$:/themes/ghostwriter/transparencystate": {
            "text": "close",
            "title": "$:/themes/ghostwriter/transparencystate",
            "tags": "$:/irreverent-mudblood/ghostwriter",
            "modified": "20161110021504405",
            "created": "20161109115418648"
        },
        "$:/palettes/Vanilla": {
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #FEFEFE\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #fefefe\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: \ntag-foreground: #f03838\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888",
            "type": "application/x-tiddler-dictionary",
            "title": "$:/palettes/Vanilla",
            "tags": "$:/tags/Palette $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "name": "Vanilla",
            "modifier": "venomspinner",
            "modified": "20161031174446260",
            "description": "Pale and unobtrusive",
            "creator": "venomspinner",
            "created": "20161028065018599",
            "bag": "default"
        },
        "$:/themes/ghostwriter/tocghostMacro": {
            "text": "\\define tocghost-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\">\n<span class=\"post-stub-title\"><$view field=\"title\"/></span>\n</$transclude>\n<$transclude field=\"caption\">\n <span class=\"post-stub-date\">/ Published <$view field=\"created\" format=\"date\" template=\"DDth MMM YYYY\"/></span>\n</$transclude>\n</$set>\n\\end\n\n\\define tocghost-body(rootTag,tag,sort:\"\")\n<ol class=\"post-list\">\n<$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\"\"\">\n<li class=\"post-stub\">\n<$list filter=\"[all[current]tocghost-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n<<tocghost-caption>>\n</$list>\n<$list filter=\"\"\"[all[current]] -[[$rootTag$]]\"\"\">\n<$macrocall $name=\"tocghost-body\" rootTag=\"\"\"$rootTag$\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$list>\n</li>\n</$set>\n</$list>\n</ol>\n\\end\n\n\n\\define tocghost-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"tocghost-state\" value=<<qualify \"\"\"$:/state/tocghost/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"tocghost-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"tocghost-item-selected\" emptyValue=\"tocghost-item\">\n<li class=\"post-stub\">\n<$link>\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n<$reveal type=\"nomatch\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</$list>\n<<tocghost-caption>>\n</$link>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$macrocall $name=\"tocghost-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define tocghost-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"tocghost-state\" value=<<qualify \"\"\"$:/state/tocghost/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"tocghost-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"tocghost-item-selected\" emptyValue=\"tocghost-item\">\n<li class=\"post-stub\">\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n<$reveal type=\"nomatch\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n<<tocghost-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<<tocghost-caption>>\n</$button>\n</$reveal>\n</$list>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$macrocall $name=\"\"\"tocghost-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define tocghost-selective-expandable-empty-message()\n<<tocghost-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\">>\n\\end\n\n\\define tocghost-selective-expandable(tag,sort:\"\",itemClassFilter)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\">\n<ol class=\"post-list\">\n<$list filter=\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\">\n<$list filter=\"[all[current]tocghost-link[no]]\" variable=\"ignore\" emptyMessage=<<tocghost-selective-expandable-empty-message>>>\n<<tocghost-unlinked-selective-expandable-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n</$list>\n</$list>\n</ol>\n</$vars>\n\\end\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/themes/ghostwriter/tocghostMacro",
            "tags": "$:/tags/Macro $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161110084617042",
            "created": "20161031140339462",
            "bag": "default"
        },
        "$:/themes/ghostwriter/Acknowledgements": {
            "created": "20161109145142879",
            "text": "This is an adaptation of the ''Ghostwriter'' Blog Theme by ''Rory Gibson'' at  https://github.com/roryg/ghostwriter for the TW5 platform. All the creative and design credits belong to him. It is a heavily popular and free theme for the ghost blogging platform. \n\nThis is a ''mobile responsive'', minimalist theme. The stylesheets are seperated out so that you can tweak to your likes. Some of the classes are redundant, I will get around to them //as and when possible//. \n\nThe other person I must furnish credits to is ''Zaphod Beeblebrox ''for the tip that enabled custom backgrounds for sidebar. Later I injected z-index to the same and found that it can be made to overlay the storyriver, which I found a neater alternative to pushing the content to a side. The stylesheet for displaying tiddler controls should be credited to ''Tobias Beer''. \n\nKudos to the group, especially Jan and Josiah, for their inputs and encouragement. I have tried to include most of the suggestions that came by. Be not shy to tell me about yours\n\nFinally, the obligatory note of thanks to'' Jeremy Ruston''",
            "title": "$:/themes/ghostwriter/Acknowledgements",
            "tags": "$:/irreverent-mudblood/ghostwriter",
            "modified": "20161110105943157"
        },
        "$:/themes/ghostwriter/topbarbtntemplate": {
            "created": "20161110024930642",
            "text": "<$button class=\"site-nav-item tc-btn-invisible\">\n\n</$button>",
            "title": "$:/themes/ghostwriter/topbarbtntemplate",
            "modified": "20161110031122949",
            "tags": "$:/irreverent-mudblood/ghostwriter"
        },
        "$:/themes/ghostwriter/pagination": {
            "created": "20161202043138190",
            "creator": "Riz",
            "text": "\\define paginate(discard:3)\n<a><$button class=\"tc-btn-invisible pages\">\n<$action-listops $tiddler=\"$:/StoryList\" $field=\"list\" $filter=\"[!is[system]!is[missing]!sort[modified]rest[$discard$]limit[3]]\"/>\n<$list variable='Target' filter=\"[!is[system]!is[missing]!sort[modified]rest[$discard$]limit[3]first[]]\"><$action-navigate $to=<<Target>>/></$list></$button></a>\n\\end\n<style>\n.emm-paginate {\ncounter-reset: paginate;\ntext-align: center;\n}\n.emm-paginate a:hover {\nborder-bottom:none;\ncolor:#fff;\n\n}\n.tc-btn-invisible.pages {\n\tborder: 1px solid #c1c1c1;\n\tpadding: 4px 8px;\n}\n.tc-btn-invisible.pages:hover {\nbackground:#a1a1a1;\n}\nbutton.pages::after {\n    counter-increment: paginate;\n    content:   counter(paginate) ;\n}\n</style>\n\n<div class=\"emm-paginate\">\n<a><$button class=\"tc-btn-invisible pages\">\n<$action-listops $tiddler=\"$:/StoryList\" $field=\"list\" $filter=\"[!is[system]!is[missing]!sort[modified]limit[3]]\"/>\n<$list variable='Target' filter=\"[!is[system]!is[missing]!sort[modified]limit[3]first[]]\"><$action-navigate $to=<<Target>>/></$list></$button></a>\n<<paginate 3>>\n<<paginate 6>>\n<<paginate 9>>\n<<paginate 12>>\n</div>",
            "title": "$:/themes/ghostwriter/pagination",
            "tags": "$:/tags/BelowStory",
            "modified": "20161202050759321",
            "modifier": "Riz"
        }
    }
}
人工智能时代的来临
AI人工智能
yes
yes
no
no
no
yes
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
yes
no
yes
no

hide
hide
show
show
show
hide
hide


visible
visible
locked
usage
usage
readme
no
yes
no
try-out
no
contents
no
contents
contents
contents
yes
yes
$:/core/ui/ControlPanel/Theme
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/MoreSideBar/Plugins/Plugins
$:/core/ui/ControlPanel/EditorTypes
$:/core/ui/ControlPanel/Plugins/Add/Plugins
$:/core/ui/ControlPanel/Info
$:/core/ui/ControlPanel/Saving/General
$:/core/ui/MoreSideBar/System
目录
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
yugongde

$:/core/modules/parsers/wikiparser/rules/wikilink.js
Home
{
    "tiddlers": {
        "$:/info/browser": {
            "title": "$:/info/browser",
            "text": "yes"
        },
        "$:/info/node": {
            "title": "$:/info/node",
            "text": "no"
        },
        "$:/info/url/full": {
            "title": "$:/info/url/full",
            "text": "file:///Users/apple/codework/20181120/AItimes20181106.html"
        },
        "$:/info/url/host": {
            "title": "$:/info/url/host",
            "text": ""
        },
        "$:/info/url/hostname": {
            "title": "$:/info/url/hostname",
            "text": ""
        },
        "$:/info/url/protocol": {
            "title": "$:/info/url/protocol",
            "text": "file:"
        },
        "$:/info/url/port": {
            "title": "$:/info/url/port",
            "text": ""
        },
        "$:/info/url/pathname": {
            "title": "$:/info/url/pathname",
            "text": "/Users/apple/codework/20181120/AItimes20181106.html"
        },
        "$:/info/url/search": {
            "title": "$:/info/url/search",
            "text": ""
        },
        "$:/info/url/origin": {
            "title": "$:/info/url/origin",
            "text": "file://"
        }
    }
}




































































loaded
Home

$:/themes/tiddlywiki/vanilla
{
    "tiddlers": {
        "$:/themes/tiddlywiki/snowwhite/base": {
            "title": "$:/themes/tiddlywiki/snowwhite/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
        }
    }
}
{
    "tiddlers": {
        "$:/themes/tiddlywiki/vanilla/themetweaks": {
            "title": "$:/themes/tiddlywiki/vanilla/themetweaks",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
            "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
        },
        "$:/themes/tiddlywiki/vanilla/base": {
            "title": "$:/themes/tiddlywiki/vanilla/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n    border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    left: -50px;\n    top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    right: -80px;\n    bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: normal;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n    cursor: pointer;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour tag-foreground>>;\n\tvertical-align: text-bottom;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-tiddler-missing .tc-title {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n    height: 1.2em;\n    width: 1.2em;\n    margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg  {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n  fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n  fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n  fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n  fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n  fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n  fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n  fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n  fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n  fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg  {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down-language-chooser img {\n\twidth: 2em;\n\tvertical-align: baseline;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n    width: auto;\n    margin-bottom: 0px;\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical  {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical  {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical  {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n    display: block;\n    width: 100%;\n    text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n    flex: 1 0;\n    background: <<colour tiddler-editor-background>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n    white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n    background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n    padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n    flex: 3 1;\n    border-left: 0.5em solid <<colour muted-foreground>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 1em 1em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n    vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder: 1px solid <<colour table-border>>;\n}\n\n.tc-chooser-item {\n\tborder: 8px;\n\tpadding: 2px 4px;\n}\n\n.tc-chooser-item a.tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-foreground>>;\n\tbackground-color: <<colour tiddler-link-background>>;\n}\n\n.tc-chooser-item a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
            "text": "15px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
            "text": "22px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
            "text": "14px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
            "text": "20px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storytop": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyright": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
            "text": "686px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
            "text": "960px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
            "text": "350px"
        },
        "$:/themes/tiddlywiki/vanilla/options/stickytitles": {
            "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
            "text": "no"
        },
        "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
            "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
            "text": "fixed-fluid"
        },
        "$:/themes/tiddlywiki/vanilla/options/codewrapping": {
            "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
            "text": "pre-wrap"
        },
        "$:/themes/tiddlywiki/vanilla/reset": {
            "title": "$:/themes/tiddlywiki/vanilla/reset",
            "type": "text/plain",
            "text": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n  font-family: sans-serif; /* 1 */\n  -ms-text-size-adjust: 100%; /* 2 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n  margin: 0;\n}\n\n/* HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; /* 1 */\n  vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n/* Links\n   ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n  background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n  outline: 0;\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n  font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n/* Embedded content\n   ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n  border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n  overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; /* 1 */\n  font: inherit; /* 2 */\n  margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n  overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; /* 2 */\n  cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n  line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box; /* 2 */\n  box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n  border: 0; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n  overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n  font-weight: bold;\n}\n\n/* Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
            "text": "\"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", \"DejaVu Sans\", sans-serif"
        },
        "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
            "text": "Monaco, Consolas, \"Lucida Console\", \"DejaVu Sans Mono\", monospace"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
            "text": "fixed"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
            "text": "auto"
        },
        "$:/themes/tiddlywiki/vanilla/sticky": {
            "title": "$:/themes/tiddlywiki/vanilla/sticky",
            "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n``\n</$reveal>\n"
        }
    }
}
370px
50px
770px
0px
750px
686px
fluid-fixed
no
backup
hunter.html


classic
!安全、伦理、隐私问题

历史经验表明新技术常常能够提高生产效率,促进社会进步。但与此同时, 由于人工智能尚处于初期发展阶段,该领域的安全、伦理、隐私的政策、法律和 标准问题值得关注。就人工智能技术而言,安全、伦理和隐私问题直接影响人们 与人工智能工具交互经验中对人工智能技术的信任。社会公众必须信任人工智能 技术能够给人类带来的安全利益远大于伤害,才有可能发展人工智能。要保障安 全,人工智能技术本身及在各个领域的应用应遵循人类社会所认同的伦理原则, 其中应特别关注的是隐私问题,因为人工智能的发展伴随着越来越多的个人数据 被记录和分析,而在这个过程中保障个人隐私则是社会信任能够增加的重要条件。总之,建立一个令人工智能技术造福于社会、保护公众利益的政策、法律和标准 化环境,是人工智能技术持续、健康发展的重要前提。为此,本章集中讨论与人 工智能技术相关的安全、伦理、隐私的政策和法律问题。


!人工智能的安全问题
人工智能最大的特征是能够实现无人类干预的,基于知识并能够自我修正地自动化运行。在开启人工智能系统后,人工智能系统的决策不再需要操控者进一步的指令,这种决策可能会产生人类预料不到的结果。设计者和生产者在开发人工智能产品的过程中可能并不能准确预知某一产品会存在的可能风险。因此,对于人工智能的安全问题不容忽视。

与传统的公共安全(例如核技术)需要强大的基础设施作为支撑不同,人工智能以计算机和互联网为依托,无需昂贵的基础设施就能造成安全威胁。掌握相关技术的人员可以在任何时间、地点且没有昂贵基础设施的情况下做出人工智能产品。人工智能的程序运行并非公开可追踪,其扩散途径和速度也难以精确控制。在无法利用已有传统管制技术的条件下,对人工智能技术的管制必须另辟蹊径。换言之,管制者必须考虑更为深层的伦理问题,保证人工智能技术及其应用均应符合伦理要求,才能真正实现保障公共安全的目的。
由于人工智能技术的目标实现受其初始设定的影响,必须能够保障人工智能设计的目标与大多数人类的利益和伦理道德一致,即使在决策过程中面对不同的环境,人工智能也能做出相对安全的决定。从人工智能的技术应用方面看,要充分考虑到人工智能开发和部署过程中的责任和过错问题,通过为人工智能技术开发者、产品生产者或者服务提供者、最终使用者设定权利和义务的具体内容,来达到落实安全保障要求的目的。

此外,考虑到目前世界各国关于人工智能管理的规定尚不统一,相关标准也处于空白状态,同一人工智能技术的参与者可能来自不同国家,而这些国家尚未签署针对人工智能的共有合约。为此,我国应加强国际合作,推动制定一套世界通用的管制原则和标准来保障人工智能技术的安全性。

!人工智能的伦理问题

人工智能是人类智能的延伸,也是人类价值系统的延伸。在其发展的过程中, 应当包含对人类伦理价值的正确考量。设定人工智能技术的伦理要求,要依托于社会和公众对人工智能伦理的深入思考和广泛共识,并遵循一些共识原则:

一是人类利益原则,即人工智能应以实现人类利益为终极目标。这一原则体现对人权的尊重、对人类和自然环境利益最大化以及降低技术风险和对社会的负面影响。在此原则下,政策和法律应致力于人工智能发展的外部社会环境的构建, 推动对社会个体的人工智能伦理和安全意识教育,让社会警惕人工智能技术被滥用的风险。此外,还应该警惕人工智能系统作出与伦理道德偏差的决策。例如, 大学利用机器学习算法来评估入学申请,假如用于训练算法的历史入学数据(有意或无意)反映出之前的录取程序的某些偏差(如性别歧视),那么机器学习可能会在重复累计的运算过程中恶化这些偏差,造成恶性循环。如果没有纠正,偏差会以这种方式在社会中永久存在。

二是责任原则,即在技术开发和应用两方面都建立明确的责任体系,以便在技术层面可以对人工智能技术开发人员或部门问责,在应用层面可以建立合理的责任和赔偿体系。在责任原则下,在技术开发方面应遵循透明度原则;在技术应用方面则应当遵循权责一致原则。

其中,透明度原则要求了解系统的工作原理从而预测未来发展,即人类应当知道人工智能如何以及为何做出特定决定,这对于责任分配至关重要。例如,在神经网络这个人工智能的重要议题中,人们需要知道为什么会产生特定的输出结果。另外,数据来源透明度也同样非常重要。

即便是在处理没有问题的数据集时, 也有可能面临数据中隐含的偏见问题。

透明度原则还要求开发技术时注意多个人工智能系统协作产生的危害。


''权责一致原则'',指的是未来政策和法律应该做出明确规定:

一方面必要的商业数据应被合理记录、相应算法应受到监督、商业应用应受到合理审查;

另一方面商业主体仍可利用合理的知识产权或者商业秘密来保护本企业的核心参数。在人工智能的应用领域,权利和责任一致的原则尚未在商界、政府对伦理的实践中完全实现。主要是由于在人工智能产品和服务的开发和生产过程中,工程师和设计团队往往忽视伦理问题,此外人工智能的整个行业尚未习惯于综合考量各个利益相关者需求的工作流程,人工智能相关企业对商业秘密的保护也未与透明度相平衡。


!人工智能的隐私问题

人工智能的近期发展是建立在大量数据的信息技术应用之上,不可避免地涉及到个人信息的合理使用问题,因此对于隐私应该有明确且可操作的定义。人工智能技术的发展也让侵犯个人隐私(的行为)更为便利,因此相关法律和标准应该为个人隐私提供更强有力的保护。已有的对隐私信息的管制包括对使用者未明示同意的收集,以及使用者明示同意条件下的个人信息收集两种类型的处理。人工智能技术的发展对原有的管制框架带来了新的挑战,原因是使用者所同意的个人信息收集范围不再有确定的界限。利用人工智能技术很容易推导出公民不愿意泄露的隐私,例如从公共数据中推导出私人信息,从个人信息中推导出和个人有关的其他人员(如朋友、亲人、同事)信息(在线行为、人际关系等)。这类信息超出了最初个人同意披露的个人信息范围。


此外,人工智能技术的发展使得政府对于公民个人数据信息的收集和使用更 加便利。大量个人数据信息能够帮助政府各个部门更好地了解所服务的人群状态, 确保个性化服务的机会和质量。但随之而来的是,政府部门和政府工作人员个人 不恰当使用个人数据信息的风险和潜在的危害应当得到足够的重视。
人工智能语境下的个人数据的获取和知情同意应该重新进行定义。首先,相关政策、法律和标准应直接对数据的收集和使用进行规制,而不能仅仅征得数据所有者的同意;

其次,应当建立实用、可执行的、适应于不同使用场景的标准流程以供设计者和开发者保护数据来源的隐私;再次,对于利用人工智能可能推导出超过公民最初同意披露的信息的行为应该进行规制。最后,政策、法律和标准对于个人数据管理应该采取延伸式保护,鼓励发展相关技术,探索将算法工具作为个体在数字和现实世界中的代理人。这种方式使得控制和使用两者得以共存, 因为算法代理人可以根据不同的情况,设定不同的使用权限,同时管理个人同意与拒绝分享的信息。

安全、伦理和隐私问题是人工智能发展面临的挑战。安全问题是让技术能够持续发展的前提。

技术的发展给社会信任带来了风险,如何增加社会信任,让技术发展遵循伦理要求,特别是保障隐私不会被侵犯是亟需解决的问题。为此,需要(制订)合理的政策、法律、标准基础,并与国际社会协作。

在制订政策、法律和标准时,应当摆脱肤浅的新闻炒作和广告式的热点宣传,必须促进对人工智能技术产品更深层地理解,聚焦这一新技术给社会产生重大利益的同时也带来的巨大挑战。

作为国际社会的重要成员,中国对保障人工智能技术应用在正确的道路上、基于正确的理由得到健康发展担负重要的责任。
中国知名互联网公司,搜索引擎

拥有中国首个开源深度学习平台是百度的PaddlePaddle。

2016年9月27日,PaddlePaddle在开源社区Github及百度大脑平台开放
关于编辑内容的几点说明(请点击编辑按钮看左栏内容):

!!1,不同段落之间要分行,正式显示出来的文本才不会混在一起。

!!2,一级标题的前方加一个 英文输入状态下的感叹号 ! 二级标题加两个!!,如下示范:

! 一级标题(前面的!是英文状态输入的)

!! 二级标题

!一级标题(错误示范,前面的!是中文状态输入的,无效)

!!关于创建链接

链接到内部文件:  [[显示的内容是这样的|Home]]  

也可以是这样的:[[Home]]

链接到网址:[[这样显示的|http://www.bolebook.com]]

英文状态下的[ [ , 还有]],内容中间用   |    竖线分隔开。

可以把上面的内容复制过去,然后修改  |  前后的内容。

图片链接的方法:  [img[这个地方替换为图片网址链接]]   

你可以在【工具】-【导入】这个地方导入你的图片,这样图片就会存在在文件里。

注:导入的图片请拼音命名,然后把文件名.jpg .jpeg填写到链接处。


示例(实在不会的话扫描联系我啊):

[img[yudade.jpg]]

步态是远距离复杂场景下唯一可清晰成像的生物特征,步态识别是指通过身体体型和行走姿态来识别人的身份。

相比上述几种生物特征识别,步态识别的技术难度更大,体现在其需要从视频中提取运动特征,以及需要更高要求的预处理算法,但步态识别具有远距离、跨角度、光照不敏感等优势。
传统机器学习从一些观测(训练)样本出发,试图发现不能通过原理分析获得的规律,实现对未来数据行为或趋势的准确预测。

相关算法包括逻辑回归、隐马尔科夫方法、支持向量机方法、K 近邻方法、三层人工神经网络方法、Adaboost 算法、贝叶斯方法以及决策树方法等。

传统机器学习平衡了学习结果的有效性与学习模型的可解释性,为解决有限样本的学习问题提供了一种框架,主要用于有限样本情况下的模式分类、回归分析、概率密度估计等。

传统机器学习方法共同的重要理论基础之一是统计学,在自然语言处理、语音识别、图像识别、信息检索和生物信息等许多计算机领域获得了广泛应用。

!![[百度]]	 

拥有开源框架 PaddlePaddle、百度大脑、自动驾驶、互联网应用等

!![[阿里巴巴]]	

中国	

人工智能综合研究	云服务、人工智能平台DT PAI 、电商产品应用	

市值 2635 亿美元	


!![[腾讯]]	

腾讯觅影等人工智能研究

!![[搜狗]]	

专注于搜索引擎、知识图谱、输入法、语音交互产品等	




!![[今日头条]]	

中国	

深度学习、自然语言处理、图像识别	媒体产品的应用	

估值约 120 亿美元	
	
!![[Facebook]]	

美国大型社交网络,拥有多个开源框架和硬件平台, Messenger 、社交网络和定向广告等多项产品和服务


!![[微软]]	


微软,是一家美国跨国科技公司,也是世界PC(Personal Computer,个人计算机)软件开发的先导,由比尔•盖茨与保罗•艾伦创办于1975年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)

人工智能方面,有CNTK 等开源框架,Cortana 、小冰等多项产业和服务,硬件

!![[谷歌]]

Google谷歌(Alphabet)是一家来自美国的跨国科技公司,业务包括互联网搜索、云计算、广告技术等,同时开发并提供大量基于互联网的产品与服务,其主要利润来自于AdWords等广告服务

具有TensorFlow 等开源框架, Google Photos 、Now 、 Inbox 和搜索等多项产品和服务、硬件


!![[亚马逊]]	

美国	人工智能综合研究	云服务、 Echo 等智能家居、机器人、电商产品应用	市值 3969 亿美元	

!![[苹果]]

苹果公司(Apple Inc. )是美国一家高科技公司《由史蒂夫•乔布斯、斯蒂夫•沃兹尼亚克和罗•韦恩(Ron Wayne)等人于1976年4月1日创立,并命名为美国苹果电脑公司(Apple Computer Inc. ),2007年1月9日更名为苹果公司,总部位于加利福尼亚

基于智能手机等硬件的多项产品和硬件、智能助手、智能家居、医疗等

!![[IBM]]

IBM 1911年创立于美国,是全球最大的信息技术和业务解决方案公司

拥有Watson 、行业认知计算解决方案、量子计算机等	

!![[Airbnb]]	

开源 AeroSolve 机器学习框架、智能助手、智能推荐、定价	


!![[Salesforce]]	

云计算、深度学习、数据处理	CRM 解决方案	市值约 506 亿美元	

!![[Slack]]	

美国	机器学习	企业通讯应用, bots 平台	估值约 38 亿美元	



动态视觉即分析视频或图像序列,模拟人处理时序图像的科学。

通常动态视 觉问题可以定义为寻找图像元素,如像素、区域、物体在时序上的对应,以及提 取其语义信息的问题。

动态视觉研究被广泛应用在视频分析以及人机交互等方面。
美国公司

官网:https://www.qualcomm.cn/ 

1985 年,七位创始人聚集在圣地亚哥的一个小房间内共商大计,决定创建“quality communications”。

如今,在这个小房间内诞生的公司在全球 40 多个国家和地区设立了 170 多个办事处, 但当初的想法却一直延续至今。

!!产品

* 平台
* 移动处理器
* 骁龙移动平台
* 2net 健康信息平台
* AllPlay智能媒体平台
* Halo 车用无线充电技术
* 小型基站
* VIVE Wi-Fi技术
* WiPower无线充电技术

!!解决方案:

* 汽车
* 医疗保健
* 物联网
* 移动计算
* 网络连接
!!''公司简称''



!!''公司概况''



!!''企业详情''

* 全称:
* 注册地址:
* 办公地址:
* 注册资本金:
* 关联企业:
* 公司官网:

!!''管理层'':



!!''战略定位''



!!''产品''



!!''业务情况''



!!''发展历程''



!!企业的创建''



!!''近期新闻''

[[中国平安]]	多元化保险

[[美的集团]]	家用电器

[[上汽集团]]	汽车制造

[[海康威视]]	"电子设备和仪器"

[[格力电器]]	家用电器

[[中国联通]]	"综合电信服务"

[[比亚迪]]	汽车制造

[[中兴通讯]]	通信设备

[[青岛海尔]]	家用电器

[[苏宁云商]]	"电脑与电子产品零售"

[[科大讯飞]]	"信息科技咨询与其它服务"

[[紫光股份]]	"电子设备和仪器"

[[大华股份]]	"电子设备和仪器"

[[长安汽车]]	汽车制造

[[四维图新]]	"互联网软件与服务"

[[机器人]]	工业机械

[[紫光国芯]]	电子元件

[[恒生电子]]	应用软件

[[同花顺]]	应用软件

[[东华软件]]	"信息科技咨询与其它服务"

[[中科曙光]]	电脑硬件

[[浪潮信息]]	电脑硬件

[[网宿科技]]	"互联网软件与服务"

[[启明星辰]]	"信息科技咨询与其它服务"

[[东软集团]]	应用软件

[[千方科技]]	"信息科技咨询与其它服务"

[[科大智能]]	工业机械

[[中科创达]]	系统软件

[[东方网力]]	"电子设备和仪器"

[[浙大网新]]	通信设备

[[神州泰岳]]	应用软件

[[神州信息]]	"信息科技咨询与其它服务"

[[美亚柏科]]	"电子设备和仪器"

[[卫宁健康]]	应用软件

[[工大高新]]	"信息科技咨询与其它服务"

[[易华录]]	"信息科技咨 询与其它服务"

[[大唐电信]]	"信息科技咨询与其它服务"

[[全志科技]]	电子元件

[[苏州科达]]	"电子设备和仪器"

[[荣之联]]	"信息科技咨询与其它服务"

[[思创医惠]]	"电子设备和仪器"

[[绿盟科技]]	"互联网软件与服务"

[[拓尔思]]	应用软件

[[赛为智能]]	"信息科技咨询与其它服务"

[[中科信息]]	"信息科技咨询与其它服务"

[[英飞拓]]	"电子设备和仪器"

[[汉王科技]]	应用软件

[[川大智胜]]	应用软件

[[立昂技术]]	"信息科技咨询与其它服务"

[[神思电子]]	"电子设备和仪器"
中国公司

官网:http://www.cambricon.com/

全球第一个成功流片并拥有成熟产品的智能芯片公司。公司的使命是打造各类智能云服务器、智能终端以及智能机器人的核心处理器芯片,让机器更好地理解和服务人类。 

公司创始人、首席执行官陈天石博士,在处理器架构和人工智能领域深耕十余年,是国内外学术界享有盛誉的杰出青年科学家,曾获国家自然科学基金委员会“优青”、CCF-Intel青年学者奖、中国计算机学会优秀博士论文奖等荣誉。

公司骨干成员均毕业于国内外顶尖高校,具有丰富的芯片设计开发经验和人工智能研究经验,从事相关领域研发的平均时间达九年以上。

公司在2016年推出的寒武纪1A处理器是世界首款商用深度学习专用处理器,已应用于数千万智能手机中,入选了第三届世界互联网大会评选的十五项“世界互联网领先科技成果”。

公司在2018年推出的MLU100机器学习处理器芯片,运行主流智能算法时性能功耗比全面超越CPU和GPU。目前,寒武纪已与智能产业的各大上下游企业建立了良好的合作关系。

!!产品

* 智能处理器IP
* MLU智能芯片
* 软件开发环境

!!新闻:

寒武纪承办世界人工智能大会 - 智能芯片全球峰会
http://www.cambricon.com/news/index.php?c=show&id=245  

问题:官网打开太慢。最少其他几家官网在同一个网络情况下打开的没这么慢...
虹膜识别的理论框架主要包括虹膜图像分割、虹膜区域归一化、特征提取和识别四个部分,研究工作大多是基于此理论框架发展而来。

虹膜识别技术应用的主要难题包含传感器和光照影响两个方面:

一方面,由于虹膜尺寸小且受黑色素遮挡,需在近红外光源下采用高分辨图像传感器才可清晰成像,对传感器质量和稳定性要求比较高;

另一方面,光照的强弱变化会引起瞳孔缩放,导致虹膜纹理产生复杂形变,增加了匹配的难度。
机器翻译技术是指利用计算机技术实现从一种自然语言到另外一种自然语言的翻译过程。基于统计的机器翻译方法突破了之前基于规则和实例翻译方法的局限性,翻译性能取得巨大提升。

基于深度神经网络的机器翻译在日常口语等一些场景的成功应用已经显现出了巨大的潜力。随着上下文的语境表征和知识逻辑推理能力的发展,自然语言知识图谱不断扩充,机器翻译将会在多轮对话翻译及篇章翻译等领域取得更大进展。

目前非限定领域机器翻译中性能较佳的一种是统计机器翻译,包括训练及解码两个阶段。训练阶段的目标是获得模型参数,解码阶段的目标是利用所估计的参数和给定的优化目标,获取待翻译语句的最佳翻译结果。统计机器翻译主要包括语料预处理、词对齐、短语抽取、短语概率计算、最大熵调序等步骤。

基于神经网络的端到端翻译方法不需要针对双语句子专门设计特征模型,而是直接把源语言句子的词串送入神经网络模型,经过神经网络的运算,得到目标语言句子的翻译结果。

在基于端到端的机器翻译系统中,通常采用递归神经网络或卷积神经网络对句子进行表征建模,从海量训练数据中抽取语义信息,与基于短语的统计翻译相比,其翻译结果更加流畅自然,在实际应用中取得了较好的效果。
机器学习(Machine Learning)是一门涉及统计学、系统辨识、逼近理论、神经网络、优化理论、计算机科学、脑科学等诸多领域的交叉学科,研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,是人工智能技术的核心。

基于数据的机器学习是现代智能技术中的重要方法之一,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。根据学习模式、学习方法以及算法的不同,机器学习存在不同的分类方法。
[ ] 机器学习 - Coursera https://www.coursera.org/learn/machine-learning/home/week/1

!! 网站和索引

* ~TensorFlow 中文社区 http://www.tensorfly.cn
* 更多机器学习资源- ~TensorFlow 中文社区 http://www.tensorfly.cn
* 深度学习入门资源(主要是国外资源) - 萌新的学习日记 - 知乎专栏 https://zhuanlan.zhihu.com/p/29058973
* Awesome Deep Learning https://github.com/ChristosChristofidis/awesome-deep-learning
* 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) https://github.com/ty4z2008/Qix/blob/master/dl.md
* Charlotte77 | 数学系的数据挖掘民工 - cnblogs http://www.cnblogs.com/charlotte77/

!! 书籍

* Deep Learning 中文翻译 https://github.com/exacity/deeplearningbook-chinese
* Deep Learning - An MIT Press book http://www.deeplearningbook.org
* Neural Networks and Deep Learning http://neuralnetworksanddeeplearning.com

!! 文章

* 如何入门深度学习? https://zhuanlan.zhihu.com/p/21475898
* 人人都可以做深度学习应用:入门篇 https://zhuanlan.zhihu.com/p/25482889
* MNIST机器学习入门 - ~TensorFlow 中文社区 http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
* 深度学习如何入门?- 知乎回答 
** https://www.zhihu.com/question/26006703/answer/156451408
** https://www.zhihu.com/question/26006703/answer/229415675
* 原来理解 深度学习 这么简单!  www.sohu.com/a/139103528_463994

!! 课程

* 机器学习 - Coursera https://www.coursera.org/learn/machine-learning/home/week/1

!! 框架

* ~TensorFlow
* Caffe
* Torch
* Theano

!! 数学

关联:

* 机器学习应该准备哪些数学预备知识? - 知乎 https://www.zhihu.com/question/36324957
* 机器学习理论篇1:机器学习的数学基础 - DT新纪元 - 知乎专栏 https://zhuanlan.zhihu.com/p/25197792
* 机器学习中的基本数学知识 - steven yang - cnblogs http://www.cnblogs.com/steven-yang/p/6348112.html#微分differential
* [转载]《和机器学习和计算机视觉相关的数学(from LinDahua)》 - 科学网  http://blog.sciencenet.cn/blog-240720-284694.html


学习:

* 张宇高数十八讲【已完结】 - Bilibili https://www.bilibili.com/video/av12790754/
* 高等微積分 - 台大开放式课程

!! 参考

传统机器学习算法:感知机、SVM、LR、Softmax、Kmeans、DBSCAN、决策树(ID3、C4.5、CART)、GBDT、RF、xgboost、Adaboost、EM、BP神经网络、NB、LDA(fisher discrimination)、PCA、核函数、最大熵、logistic regression等等,目前想到这么多,下次博客会讲述我对它们的理解以及我的学习材料资源。

深度学习(DL是ML的一部分,不要认为DL中包含ML,推荐看看bengio老师的DL):CNN、RNN、LSTM、常用激活函数、adam等优化算法、梯度消失原因、梯度爆炸等。

自然语言理解(NPL):TF-IDF、textrank、word2vec等。

常用概念:最大似然估计(这是一个有故事的概念...)、最小二乘、模型融合方法、L1、L2正则、判别模型与生成模型、熵、KL散度、数据归一化、最优化方法(梯度下降、牛顿、共轭梯度等)、无偏估计、算法评估方法(FROC、ROC、PR、F1、AUC等)、交叉验证、bias-variance-trackoff、概率、高数、线代等等。

来源:[[从小白到机器学习算法工程师,我做了哪些准备?|http://blog.ihuxu.com/the-preparation-from-the-white-to-the-machine-learning-algorithm-engineer/]]
在相机成像原理方面,计算成像学不断促进现有可见光相机的完善,使得现代相机更加轻便,可以适用于不同场景。

同时计算成像学也推动着新型相机的产生,使相机超出可见光的限制。

在相机应用科学方面,计算成像学可以提升相机的能力,从而通过后续的算法处理使得在受限条件下拍摄的图像更加完善,例如图像去噪、去模糊、暗光增强、去雾霾等,以及实现新的功能,例如全景图、软件虚化、超分辨率等。
计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。

自动驾驶、机器人、智能医疗等领域均需要通过计算机视觉技术从视觉信号中提取并处理信息。

近来随着深度学习的发展,预处理、特征提取与算法处理渐渐融合,形成端到端的人工智能算法技术。

根据解决的问题,计算机视觉可分为计算成像学、图像理解、三维视觉、动态视觉和视频编解码五大类。

!!计算机视觉



!![[商汤科技]]	


中国	计算机视觉和深度学习	人脸识别、危险品识别、行为检测、车辆检测等的安防监控系统


!![[旷视科技]]	

中国	计算机视觉和深度学习	Face++ 人脸识别云服务平台、 Image++ 图像识别平台、 VisionHacker移动游戏工作室	


!![[依图科技]]	

中国	计算机视觉和深度学习	基于图像理解的信息获取和人机交互服务	

!![[图普科技]]

	中国	计算机视觉和深度学习	图像识别、智能审核、图片增值等云服务		

!![[Clarifai]]	

美国	计算机视觉	图像及视频识别 API	A 轮融资 1000 万美元	

!![[Affectiva]]	

美国	计算机视觉和深度学习	实时面部表情分析和情绪识别解决方案	四轮融资 3372 万美元	

!![[ViSenze]]	

新加坡	计算机视觉	电子商务、移动商务、 在线广告等图像识别解决方案	两轮融资 1400 万美元	


!![[图麟科技]]

图麟科技是一家提供大数据量图像、视频的搜索、大规模视觉识别、智能分析处理等技术服务的公司,核心技术可广泛应用于广告媒体、视频网站、安防监控、电视、互联网应用、大数据分析、工业级影像处理等领域


!![[Manchester Imaging]]

Manchester Imaging是一家牙科智能诊断企业。专注于口腔领域利用机器学习和计算机视觉软件,以及在统计形状和外观建模和分类方面技术,开发口腔科图像分析软件



!![[鼎识科技]]

鼎识科技是一家专注于自动识别与影像技术产业的研发、制造和销售的高科技公司,专注于在计算机互联网的基础上,利用自动识别技术及RFID技术,将物品赋予一个代码,构建出一个能实现物品信息实时共享的信息平台


!![[悉点科技]]

悉点科技是一家从事人工智能创新性研究的企业,通过以治安管理为导向的人证核验及数据应用云服务,致力于将先进的人脸识别技术与行业应用相结合,建设更加安全、健康、便利的世界。悉点的产品已经服务于酒店、网吧等


!![[中佳智通]]

从事快件智能安检分拣系统的集成业务。首次将人工智能和模式识别技术应用于快件监管系统,极大的提高了系统效率和正确率,系统检测准确率达到99%以上,遥遥领先于同业水平
!![[周同科技]]

周同科技是一家Video Intelligence公司,依托深度学习与计算机视觉技术,理解视频内容组成,构建海量视频的结构化数据分析平台,为视频内容创造更高的商业价值。周同科技利用强大的工程化能力,将video understanding]]


!![[龙安互动]]

龙安互动是一家专注于视觉交互体验与IT技术整合创新应用的科技公司。公司在虚拟现实、人机交互、用户体验、视觉创意、3D表现、IT技术、数字新媒体营销领域拥有丰富经验与优势资源



!![[新舟锐视]]

新舟锐视是一家智能视觉技术公司,专业从事智能视觉产品的研发、生产、安装及销售,已经研发成功的多摄像头实时联动智能跟踪一体机等


!![[VMAXX]]

VMAXX是一家致力于人工智能和视觉分析研究的高技术公司,专注于大型商业楼宇、大型零售门店和大型会展等方面的智能客流行为分析,隶属于 维视科技(西安)有限公司


!![[深图智服]]

深图智服是一家专注于深度学习和图像识别智能技术服务的公司。研发深度学习、图像识别和计算机视觉的原创技术,致力于打造人工智能科技的“最强大脑”和“火眼金睛”,服务于“人工智能+”市场的各种智能应用需求


!![[博思廷科技]]

博思廷科技是一家智能视频分析服务商,主要依靠视频分析技术进行人工智能图像识别,业务覆盖智能安防、智能交通、智能消防、智能管理等领域,其中,又以智能安防为重点



!![[Ditto Labs]]	

英国	计算机视觉	数字媒体、广告营销、社交图片识别分析	四轮融资 968 万美元	

!![[Orbital Insight]]	

美国	计算机视觉、深度学习和数据科学	分析海量卫星图像,用于经济趋势分析和公益研究	三轮融资 2870 万美元	

!![[Planet Labs]]	

美国	计算机视觉和数据科学	将卫星图像识别用于农业、城市规划和灾害响应等	融资 1830 万美元	

!![[格灵深瞳]]

格灵深瞳是一家专注于计算机视觉以及人工智能的科技公司。我们致力于让计算机像人一样主动获取视觉信息并进行精确的实时分析,释放人工智能最大的潜能为人服务。现阶段聚焦于将全球领先的人工智能及模式识别技术应用


!![[Descartes Labs]]	

美国	计算机视觉和深度学习	通过 DLFP 平台为农业提供数据分析和预测的解决方案	三轮融资 828 万美元	
	


!![[爱图瓴]]

爱图瓴是一家专注于计算机视觉应用的人工智能公司,为智能家电、安防监控、智能交通、金融及其他物联网行业提供业界领先的技术与解决方案


!![[泼辣熊]]

泼辣熊是一个摄影辅助工具,由两名斯坦福大学计算机系和电子工程系的中国留学生组建,团队技术背景主要集中在计算机视觉,图形图像,人工交互以及人工智能几大方面

!![[Yi+]]

致力于“发现视觉信息的价值”。旗下品牌Yi+是人工智能计算机视觉引擎,衣+是时尚商品搜索引擎。 公司在图像与视频中对场景、通用物体、商品、人脸的检测、识别、搜索及推荐均达到领先水平。图像和视频识别准...]]


!![[金惠科技]]

金惠科技是一家计算机视觉技术服务商,具有自主知识产权的智能图像/视频处理技术,产品主要应用在图像/视频智能分析、网络信息安全和教育信息化领域,目前已经在国家电网、高铁、智能交通、公安、运营商、教育等多个...]]


!![[BrainVu]]

BrainVu是以色列一家AI情绪识别服务提供商,其技术主要是通过先进机器视觉功能来识别生理生物标记,并使用智能手机/AR/VR/MR摄像头实时提取人类情绪反应。


!![[Cape Analytics]]

Cape Analytics是一个美国人工智能自动化财产承保平台,开发了一个云平台获取地理图像,包括户外图片和卫星图片,将图像置入内部平台后通过计算机视觉和深度学习算法理解并提取结构化数据,以此帮助保险公司

!![[盛开互动]]

盛开互动是一家致力于视觉识别和人工智能技术研发的公司,面向智能产品提供视觉感知与系统软件技术服务。自主研发了基于深度学习的视觉识别“SKEye人工智能开放平台”与基于多模态交互融合技术的智能机器人系统软件

!![[非思智能]]

非思智能是一家人工智能视觉识别公司,专注于对安防、金融、政企等客户提供智能化的人脸识别整体解决方案


!![[伟景智能]]

伟景智能是一家硬件服务公司,推出机器智能眼产品——ViEye,可根据特定需求自主呈现高精度3D坐标及高精细度目标尺寸等量化信息,致力于给机器人和移动设备开发的一双“智能眼”,提供工业自动化领域的双目立体视觉软件

!![[深视科技]]

深视科技是一家从事体感技术研发与推广的公司。公司致力于研发自主知识产权的新一代体感解决方案。公司专注于无需穿戴设备,通过三维计算机视觉,依靠自主研发的计算机学习算法,准确快速的实现人体姿态和手势的识别


!![[云思创智]]

云思创智是一家人工智能算法应用平台,将人工智能深度学习技术中机器视觉和自然语言理解相结合,提供基于视觉、自然语言等大数据的人工智能算法应用PaaS平台。现应用于工业、政府、金融、医疗等领域

!![[Crowdriff]]

Crowdriff是一个人工智能旅游视觉内容管理和营销平台,该平台利用内容发现、数字资产管理以及内容交付工具帮助营销人员获取并共享用户生成的专业和存量图片



!![[爱见科技]]

爱见科技是一家专注于机器人产品研究、开发、生产及销售的高科技企业,致力于机器人底层运动控制、SLAM、自动避障、视觉识别、环境监测、软件交互等领域



!![[MINIEYE佑驾创新]]

MINIEYE致力于研发世界一流的车载视觉感知技术和产品,推动汽车无人化发展。目前公司提供定制化的ADAS解决方案,可根据合作方不同的需要提供含有不同功能的ADAS产品。主打的基础功能板块有前向碰撞预警,车道偏离预警,行





!![[肇观电子]]

肇观电子是一家专注于人工智能和计算机视觉系统和芯片的公司。致力于将视觉赋予给所有的机器人,无人机,无人车以及其他智能设备,开启人工智能的新时代。产品包括智能眼镜、立体摄像头等


!![[睿视智觉]]

睿视智觉是一家以图片智能处理为主的人工智能公司,公司致力于利用图片信息处理算法及FPGA加速技术,提供行业图像信息应用,专注于于提升大数据时代图片的商业价值



!![[诠视科技]]

诠视科技是一家高速VSLAM解决方案提供商,公司主要从事计算视觉技术研发,专注于为VR/AR头盔及机器人提供高速VSLAM解决方案,包括软件、硬件及嵌入式系统实施。还发布了业界适用于移动端的嵌入式VSLAM模组-eXLAM

!![[先见科技]]

北京先见科技有限公司成立于2016年8月,是A股上市公司“永创智能”(603901)旗下全资子公司,致力于机器视觉产品的研发、生产和销售为一体的高科技公司。主要为生产制造业的广大工业企业,提供产品表面特征的智能识别及




!![[好看]]

好看是一家使用人工智能系统技术智能处理并分发图片内容的视觉平台,通过内部多类数据感知用户行为,通过抓取、交换的外部数据感知预测社会、人群热点,逐步实现自动认知


!![[七鑫易维]]

七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,专注于眼球追踪技术的研发和创新,旨在升级和优化所有终端设备的人机交互体验。将眼球追踪技术广泛应用于智慧医疗、VR/AR、智能手机、广告传媒、智能汽车


!![[深合智能]]

一家基于机器视觉、卷积神经网络、深度学习、大数据等技术,开发应用于人工智能+新零售垂直行业的整体技术解决方案的服务提供商

!![[NEX Team]]

NEX Team是一家美国篮球训练人工智能解决方案提供商,旨在运用人工智能技术为全球运动员以及体育社区提供服务,旗下开发有篮球训练辅助平台“HomeCourt”,通过运用计算机视觉以及数据分析技术,可对运动员的动作进行记录

!![[人工智能视频大数据]]

人工智能视频大数据是一个专注于嵌入式人脸识别系统技术与设备的研究开发的平台,致力于将先进的人工智能技术与行业应用相结合,构建面向国防军事智能电子、智慧教育及智能交通等行业的视频智能应用平台,提供智能系

!![[Hawxeye]]

Hawxeye是一家美国计算机视觉和面部识别软件服务商,根据无约束深度AI人脸检测、姿势和照明容忍面部匹配、远程虹膜识别等技术手段,至于为用户提供定制化计算机视觉识别解决方案,可应用于智能家居、智能零售等多个领域...]]


!![[盈觉智能科技]]

盈觉智能科技是一家以计算机视觉技术为核心,致力于为企业和个人消费者提供智能视频分析以及工业视觉解决方案,满足用户对于安防,工业自动化生产,视频数据智能统计分析的各类需求



!![[迪路科技]]

利用人工智能、深度学习等全新的技术方案解决移动测绘及自动驾驶高精地图领域所遇到的问题

!![[创来科技]]

创来科技是一家在ADAS中专注车道偏离预警系统的企业,该车道偏离预警系统通过安装在汽车前挡风玻璃上的摄像头传感器实时捕捉路面车道图像,提取出车道线,分析车辆相对于车道的位置


!![[AnyVision]]

AnyVision是一家以色列视觉识别技术研发商,专注于面部、身体和物体识别技术,以及其底层系统基础设施的建设,旗下开发有“Better Tomorrow”、“FaceKey”等产品,可通过使用计算机视觉技术,为用户提供智能识别服务,可应用...]]



!![[Qfeel Tech速感科技]]

速感科技是一家以机器视觉为核心的人工智能创业公司,机器人行业领先的视觉解决方案提供商。公司成立于2014年7月,并已先后完成三轮融资。目前公司的主要产品为面向智能机器人的系统化视觉解决方案——ULBrain™M-32三维


!![[博昂科技]]

博昂科技是一家致力于计算机视觉核心技术研发与产品开发的新兴科技公司,以智能工业一体机为硬件平台、以机器学习和图像及视频处理为核心技术、以上层应用程序及后端云平台数据应用为服务特色的系列产品


!![[Regaind]]

Regaind是一家图像识别技术研发商,开发了一种计算机视觉API,可以从图像中提取内容,来帮助公司和开发者处理海量图像数据流并对其分析和分类


!![[慧知连]]

慧知连是一家专注于计算机视觉与人工智能的高科技企业,旗下品牌facevisa——寓意“脸签”,致力于解决互联网金融的“面签”难题,拥有整套互联网刷脸注册开户、实名认证、支付安全、智慧迎宾等解决方案,可以为各类企


!![[HUMAN+]]

人加智能是一家机器人立体视觉技术研发商,自主研发了3D视觉传感器“司眸”,可以为各类移动机器人提供立体视觉感知解决方案,让机器人拥有自主避障、自主定位与导航等视觉的智能,致力于为工业自动化、服务机器人、


!![[创想智控]]

创想智控是一家集研发、生产、销售于一体的高新技术企业,有着多年的机器视觉领域研发经验。生产销售产品主要为基于机器视觉的智能视觉焊接专家系统,特别专注于焊割领域的智能化设备生产和改造


!![[PerceptIn]]

Perceptln普思英察是一家人工智能领域初创公司,致力于为机器人提供完全基于视觉的SLAM解决方案,提供手机芯片处理、单目摄像头SLAM等低成本、算法提升精确度的方案,主要用于扫地机器人、车载ADAS等产品


!![[多智科技]]

多智科技是一家人脸识别技术研发商,利用人脸识别技术、神经网络算法,可以在公共区域大规模实现面部识别与匹配,致力于开发车辆识别系统、区域追踪系统、华人人脸数据库等


!![[深瞐科技]]

深瞐科技是一家专注于计算机视觉,人工智能,机器视觉等领域的科技公司,在全球首家提出“车脸”识别技术,利用深度学习技术推出业界领先的“车脸”识别,视频结构化等系列产品,已广泛的应用于公共安防、海关等领域



!![[阿丘科技]]

阿丘科技是一家将3D视觉和机器学习技术应用于工业自动化的创业公司,重点关注自动质量检验、故障检测和智能分拣,是一家具备机器人视觉 、深度学习以及一体式硬件研发能力的高科技公司。目前推出的产品有AQ-Insight和Smart



!![[南湾科技]]

南湾科技是一家影视后期制作商,通过多种信号处理算法,人工智能技术,电脑视觉技术,及流体学算法等全面应用于影视后期制作。业务包括创意策划、技术研发、产品开发、海外合作等服务


!![[黑石机器人]]

黑石机器人是一家机器人奶茶店运营商,采用智能深度学习、语音交互、3D打印、情感交流以及AI技术,视觉识别用户的身份、行为,获取其购物历史、习惯,为用户提供产品推荐、帮助、指引、指路等社交服务,同时制作果汁



!![[爱观视觉]]

爱观视觉是一家仿生视觉系统控制及双目视觉技术研发商,专注于机器人仿生视觉系统研究和传感网的研究,覆盖机器视觉、图像处理、传感网、物联网标准制定、组网通信、信号处理、嵌入式软件、芯片设计、MEMS传感器设计





!![[瑞为技术]]

瑞为技术是一家图像智能分析产品与解决方案提供商,拥有机器学习和计算机视觉核心技术,在视频监控、智能终端以及智能交通等领域为客户提供图像智能产品与行业解决方案



!![[高视科技]]

高视科技是一家工业智能视觉检测技术方案商,将计算机视觉技术、人工智能深度学习算法技术等应用在屏幕缺陷检测领域,研发了屏幕模组检测设备,并开发了标准化智能机器视觉工业应用平台


!![[ImagineVision]]

视觉科技致力于提供顶级的影像相关的产品,包括世界一流的高倍镜头自动聚焦和变焦算法、世界一流的嵌入式消费类高清图像无线传输解决方案,隶属于致力于提供顶级的影像相关的产品,所掌握的核心技术包括世界一流的高


!![[图漾科技]]

图漾科技是一家专注于机器视觉技术的科技公司,主打产品为“深度摄像头”,是一种能够获取环境物体深度信息的设备,可以精确获取周围环境和物体的三维尺寸和位置数据

!![[ImageDT]]

ImageDT是一家数据采集分析及语义图像分析服务商,专注于为企业提供商业智能化技术与服务,具备数据采集、图像识别、语义分析、海量数据挖掘等技术,业务内容包括大数据市场研究、零售智能化管理、图像识别智能审计、


!![[微光互联]]

微光互联是一家从事图像技术研发与推广的互联网公司。公司致力于图像识别技术的研发与推广。公司目前的主要业务是线上平台的建设以及线下客户渠道的拓展,公司目前的图像识别技术已经应运于各个领域,隶属于北京微光


!![[太观科技]]

太观科技是一个大数据认知计算平台,致力于知识图谱和图数据库研发,提供深入领域的数据科学咨询服务。开发的高性能图数据库,让数据密集型计算变得简单高效

!![[中测智绘]]

中测智绘是一家专注于地理信息和计算机视觉领域的企业,致力于打造全自动、无约束的影像建模系统。主要从事摄影测量、遥感、地理信息相关领域的软件的开发和研制,应用于数字城市、智慧城市、3D打印、工业零件模型制





!![[D-ID]]

D-ID是一家以色列自动反人脸识别系统提供商,致力于保护图像免受未经授权的自动人脸识别技术侵害,图像以开创性的方式处理,使人脸识别算法无法识别图像中的主体,同时也要保持足够的相似性



!![[华睿科技]]

华睿科技是一家专注于机器视觉产品研发、生产与销售的专业性公司。大华股份旗下机器视觉子公司,主要产品为工业相机设备,应用于工业视觉检测、工厂自动化、物流运输、交通等领域


!![[戈子科技]]

戈子科技是一家商业化餐饮视觉智能结算系统研发商,基于高校、工厂食堂等团膳领域普遍存在人工计价结算效率低、食堂运营数据乱等问题,公司研发了“戈子视觉结算系统”,一款将图像信息处理技术应用到团膳领域结算服



!![[淘米科技]]

淘米科技是一家专注于AI领域计算机视觉技术的创新性科技企业,致力于成为行业领先的解决方案及服务提供商。国内首家开创性的将计算机视觉识别、大数据、智能可穿戴等相关技术应用到战备训练体育训练领域的企业。公司

!![[Orbo Inv]]

Orbo Inv是一家印度计算机视觉及AI成像技术研发商,基于计算机视觉、图像识别、深度学习等技术,提高AI相机应用程序的图像识别能力,致力于解决无人机空中摄影的问题,为监控摄像机带来自动化和嵌入式解决方案


!![[青瞳视觉]]

青瞳视觉是一家专注于红外光学位置追踪系统研发的高科技企业,自主研发工业级红外光学位置追踪系统,应用于军工,医疗,教育科研,生命科学工程,虚拟仿真,影视特技与三维动画游戏制作等领域


!![[中联晟世]]

中联晟世是一家人脸识别技术研发商,专注于从事计算机视觉、模式识别、大数据分析服务。其人脸识别系统(FFOS) 能够将人脸识别技术与通信运营商大数据相结合、提供精准行业解决方案


!![[VISM纬目信息]]

纬目信息是一家眼球追踪技术方案服务商,致力于为人机终端设备提供眼控交互方案和人眼数据分析服务,同时将技术结合VR及AR设备整机研发,产品包括眼控VR头显、眼控AR眼镜等


!![[三维机器视觉]]

非白三维科技有限公司(前身为讯点三维)愿景是成为三维重建和机器视觉领域伟大的世界级企业,是一家专注于三维重建和三维机器视觉领域底层研发的技术创新型企业。公司技术力量队伍来自于微软亚洲研究院、浙大CAD等


!![[恩钛控股]]

恩钛控股是一家以研发为主的人脸识别高新技术企业,专心致志于打造一个科学的人工智能体系。专业从事人脸识别系列产品的研发、生产和销售


!![[深网视界]]

深网视界是一个专注于计算机视觉和深度学习的公司,致力于公安行业智能视频监控分析,人群分析,人群密度,混乱程度,安全等级,滞留预警,人体跟踪,人脸识别等,提高安防系数


!![[艾特城]]

艾特城是一家计算机视觉技术研发及应用服务商,技术领域涉及人脸识别、视觉跟踪系统、视觉图像搜索、图像变形与融合、裸眼3D以及无人机对地动态多目标跟踪、高空对地动态多目标跟踪技术研究等,通过对技术进行商业化


!![[领航视觉]]

领航视觉是一家建筑信息化科技公司,致力于使用机器人和三维重建技术,为客户提供快速且精准的室内三维数字化解决方案,提供线上浏览、空间认知、空间管理规划和空间状态记录等服务



!![[第六镜Glasssix]]

第六镜Glasssix是一家计算机视觉技术模块化服务提供商,可进行人脸识别、智能交通/出行管理、别墅安防等服务


!![[博云视觉]]

博云视觉是一家专注于视觉搜索与分析技术研究和应用的科技创新公司,致力于视觉搜索与分析算法的深度研究


!![[云识图]]

云识图是一家专注于图像识别及视频理解的人工智能科技公司。隶属于北京云识图信息技术有限公司



!![[loitor slam岚瞳视觉]]

loitor slam岚瞳视觉是一家通用图像采集设备研发商,主打产品是一款专门针对计算机视觉开发人员定制的极易上手、功能全面的通用图像采集设备,并集成了被广泛使用的MPU-6050惯性传感器


!![[形色]]

形色是一个植物识别与分享交流社区建设平台,致力于上传植物图片进行识别,以及全球植物景点最新攻略,探索植物世界,鉴定区入驻了识花大师们,随时鉴定上传的植物,每日上线趣味话题,讨论植物涨姿势

!![[禾思科技]]

禾思科技是一家轻量级AI解决方案提供商,专注于人工智能视觉算法、芯片以及大数据研究,为各个行业提供"云+端"视觉解决方案



!![[江丰科技]]

江丰科技是专业从事视频数据处理、分析及管理等相关软件产品研制的高新技术企业,专注于“科技创造美好生活”的计算机智能技术应用软件开发,为政府、公安、重点安全单位以及相关领域提供优质的智能视频分析产品、解


!![[玩瞳科技]]

玩瞳科技是一家为摄像头赋能教育智慧的企业,致力于采用AI视觉算法平板电脑的摄像头进行赋能,帮助其具有教育智慧


!![[之元科技]]

之元科技专注人脸识别应用,北京旷视科技(Face++)有限公司的金牌合作伙伴,解决方案提供商,面向银行、公安、教育、企事业等行业应用。公司致力于为客户带来最先进的人脸识别核心算法,为客户的业务需求量身定做配套的



!![[码隆科技]]

专注于计算机视觉技术创新,打造国际领先视觉智能技术平台的人工智能公司,核心团队来自微软亚洲研究院、中科院。核心产品ProductAI是为企业客户提供商品识别、图像识别、以图搜图解决方案的人工智能视觉应用平台


!![[火剧科技]]

火剧科技是一家为影视全产业链核心需求提供大数据解决方案的公司,旗下有影视行业大数据分析平台“火剧工厂”,以大数据科技精准制导影视发行、营销、广告植入、艺人对接,并实现潜力IP挖掘、项目风险评估、投资决策


!![[法视特]]

法视特是一家图像处理解决方案提供商,为用户提供从芯片级、板卡级到系统级的产品和包括识别与三维等在内的核心图像算法解决方案,同时开发包含检测、识别、计量等技术的应用软件标准库函数


!![[司马大大]]

司马大大是一家专注于以人工智能为基础的视觉机器人的高新技术企业,致力于视频大数据的智能管理,采用压缩感知技术、深度学习技术, 为海量视频资源的采集、存储、分析和数据结构化提供了一套完整的软硬件相结合的


!![[Human+]]

Human+是一家人工智能领域移动视觉深度感知方案提供商,致力于为移动机器人提供视觉感知能力,打造移动机器人的视觉智能。现已开发MoveSense 1.0移动视觉感知方案




!![[Visbody人体三维扫描仪]]

Visbody是人体三维扫描解决方案提供商,Visbody人体三维扫描仪是专业收集人体数据的逆向设备,可应用于3D打印、服装定制、虚拟试衣、影视特效、健身整容、虚拟现实等多个领域

!![[帆声图像]]

帆声图像是一家专业从事机器视觉系统集成研发和服务的高新科技企业

!![[阅面科技ReadSense]]

阅面科技(ReadSense)是一家人工智能公司,基于深度学习,专注嵌入式计算机视觉技术的研发。通过软硬件一体化视觉交互产品,为智能商业、智能楼宇、智能校园等民用领域,带来全方位AI解决方案。 阅面科技的愿景是“用AI视觉构建智能生活”,阅面科技的产品致力于在“实时动态”、“低功耗”和“嵌入式”方面不断突破,让智能技术能够以更低的门槛进入大众的日常生活。

https://www.readsense.cn



!![[北京中科虹霸]]

北京中科虹霸科技是一家虹膜识别产品及解决方案提供商,主要应用于个人身份认证和人员管理



!![[正安维视]]

正安维视是一家专注于计算机视觉与人工智能研发与服务的国家级高新技术企业。公司以视频监控和安防领域为主要应用方向,向市场提供全时空立体可视化平台、三维球机协同追视系统、室内全景监控系统、全景智能分析系统



!![[耐思捷]]

耐思捷智慧是一家专注于人工智能和大数据技术的高科技企业,专注于基于人工智能深度学习技术的计算机视觉、图像视频智能理解和分布式系统及非结构化大数据领域


!![[DeepLeap]]

DeepLeap是一家人工智能视觉定制公司,致力于定制场景化的视觉识别模型、帮助你构建更聪明的应用,为企业和开发人员提供定制化模型训练服务,通过一个干净的 API 进行数据访问,能够快速简单的建立全新的智能应用


!![[Clarifai ]]

Clarifai是一家人工智能初创公司,致力于为开发人员提供照片元数据标记功能,以便其他公司通过算法来识别照片中的对象,降低视觉搜索技术门槛


!![[FaceCore网识科技]]

FaceCore是一个人脸识别开放平台,为开发者提供基于人脸检测、人脸比对技术的视觉服务平台,目前的开发的服务接口有:人脸特征比对接口、人脸数量检测接口、检测人脸特征接口。北京网识科技有限公司旗下产品


!![[Wikkit Labs Inc]]

Wikkit Labs Inc是一家专营计算机图形大数据处理的科技公司。由美国海归博士团队创办,专业覆盖计算机视觉,云平台管理,无线组网等核心技术,旨在为中小型企业和商户提供稳定、高效且低成本的计算机视觉方案

!![[支付鸨]]

支付鸨是一款以图搜图,鉴定图片的可信度识别工具,让日益兴盛的移动社交增添一分真诚的保障,隶属于上海有昊网络科技有限公司


!![[酒咔嚓]]

酒咔嚓是一个葡萄酒信息及电商服务平台,打造了一款基于图像识别技术及葡萄酒数据分析的云服务手机客户端,具有对葡萄酒标拍照后搜索、查看商品信息、收藏、记录、分享葡萄据信息以及比价及购买的功能

!![[合合信息]]

合合信息专注于移动应用开发,在光学字符识别、手写识别、图像处理及自动图像增强等领域拥有自主知识产权的核心技术。旗下产品有:名片全能王(CamCard)、扫描全能王(CamScanner)、拍译全能王(CamDictionary)等


!![[Euvision]]

Euvision 成立于2010年1月,是荷兰一家人工智能图像识别技术公司,旗下开发有相册应用 Impala


!![[Oovvuu]]

Oovvuu是一家AI视频处理服务提供商,旗下平台Compass使用IBM Watson功能,可以实时阅读并理解来自全球10万个媒体发布的文章,同时还可以观看和分析来自电视广播公司的成千上万个视频,将其与相关文章进行匹配


!![[DeepMotion]]

DeepMotion是一家美国AI动画制作商,研发了Creature、Avatar、Neuron等多款动画制作软件,利用深度学习动力引擎和强大的工作流程来自动调整角色,并使用单个图像制作复杂的动画


!![[华夏视科]]

华夏视科是一家专注于提供视觉与图像质量检测解决方案和服务的高科技企业



!![[微鲸科技]]

微鲸科技是一家专注于家庭娱乐的互联网科技公司,公司主要产品为一款互联网电视,旨在为“微鲸一代”的年轻家庭提供最好的智能产品和服务


!![[宽洋科技]]

深圳宽洋网络发展有限公司成立于2013年9月,专注于触屏智能音箱的研发生产和销售。致力于智能化数码消费产品、智能家居产品、信息化智能产品等,在美国纽约、德国柏林、香港、中国北京、深圳、上海、厦门等地设有研发


!![[萤石]]

萤石是海康威视旗下的安全防护产品,为家庭和小微企业用户提供实时查看、远程关爱、即时分享等全面的视频应用服务


!![[物联智能家居]]

物联智能家居是一家智能家居产品研发商,致力于将物联网技术应用于智能家居领域,旗下主要产品包括多功能环境监测器、网关全角度高清摄像机、网络智能锁、智能猫眼、智能插座等


!![[应用拍拍]]

应用拍拍是一个让用户拍图标、即可下载手机应用的工具,提供新的应用安装方式,亮风台(上海)信息科技有限公司旗下产品


!![[bigjpg人工智能]]

bigjpg人工智能是一个图片放大平台,专注于人工智能图片无损放大,只用神经网络预测放大图片,支持3000x3000px 10M图片放大,最大放大16x倍

!![[稻狗智能]]

稻狗智能是一家智能家居生产制造商,通过利用人工智能、云计算以及移动互联等科技技术,为用户提供智能家系列成品,致力于为用户提供智能安防系统、人体感应传感以及电子元器件等,同时帮助用户体验智能生活的享受

!![[漏斗科技]]

漏斗科技是一个智能内容审核云服务平台;该平台通过深度卷积神经网络技术,建构图片识别引擎,为用户提供色情鉴别、暴恐识别、广告识别等图片、视频类内容审核服务


!![[掌中全景]]

基于影视大数据的应用平台,以用户为中心向用户提供人工智能搜索、视频识别技术和数据服务,以满足用户的视频搜索与观看需求


!![[好买衣]]

好买衣网是一家支持“亲身试穿”的线上试衣间,通过真实人物3D建模、1:1且多角度还原试穿效果、多尺码试穿对比和专业推荐,为用户提供导购服务,隶属于上海试衣间信息科技有限公司

!![[闲拍]]

闲拍是一个AI人工智能奢侈品鉴定系统,对卖家及买家上传的闲置奢侈品实施全程视频展示,并提供点对点竞拍服务,提供个性化的终端寄卖服务、第三方鉴定服务,对奢侈品鉴定的全过程实时跟踪,对清洁保养环节、鉴定结果


!![[Tagos]]

Tagos是印度一家人工智能视频交互平台,能够让视频具备双向体验,对触摸做出回应。Tagos 把每一次触控都进行“书签标记”,然后进行深入分类,为视频内容所有者、发布者和观众创造价值

!![[视连通]]

视连通是一家视频智能分析引擎提供商,专注于以视觉和深度学习为基础,为视频提供分析引擎和场景互动的SaaS服务公司


!![[苏州四维空间]]

苏州四维空间是一家消费电子和智能家居技术公司,产品有家居智慧眼、生活记录仪等

!![[瑞斯特朗]]

瑞斯特朗是一家智能验布机供应商,专注于纺织与服装业,基于前沿光学图像处理、信息处理技术和人工智能,通过人工智能及图像识别寻找布料上的瑕疵,标记并生成检验报告


!![[萤石]]

萤石是海康威视旗下的安全防护产品,为家庭和小微企业用户提供实时查看、远程关爱、即时分享等全面的视频应用服务



!![[络策网络Insight排行榜]]

上海络策网络是一家 人工智能大数据研发公司,汇聚全球的社交内容,利用我们自主开发的神经元网络识别和分析来自于社交网络的文字、图片和视频内容,致力于帮助品牌和普通消费者作出明智的决策,旗下有Insight排行榜.


!![[汉王智远]]

汉王智远是一家生物特征识别技术和产品研发商,开发出人脸识别考勤机、门禁机、双目人脸仪、人脸锁、SDK授权、人脸识别模组授权、人证合一身份验证系统以及智能通道式人脸门禁系统和动态人脸布控系统等生物特征识别系


!![[探头]]

探头APP是一款拍照识别物品软件,通过人工智能大数据算法技术,帮助用户识别生活中众多的物品信息,深圳市到点网科技有限公司旗下

!![[蜗牛管家]]

通过人脸识别、红膜识别、语音对讲、大数据挖掘以及人工智能等技术,研发智慧锁芯、智慧门锁等产品,为用户提供智能社区所需的数据与终端智能设备支持

!![[梭维智能]]

梭维智能科技是一家人脸识别安防监控系统研发商,公司主要服务于个人消费级市场及传统安防监控设备制造商,基于人工智能系统提供人脸识别安防监控程序,并提供成本低的人脸识别安防监控



!![[Hanvon汉王科技]]

汉王科技在手写识别、光学字符识别(OCR)、笔迹输入等领域拥有多项具有自主知识产权的核心技术,综合技术水平在国内外均处于领先地位,手写汉字识别获得国家科技进步一等奖,OCR获得国家科技进步二等奖。

!![[Affectiva]]

Affectiva是一家致力于“情感识别技术”的初创企业。通过捕获数字视频中人物的面部表情,Affectiva提供的技术能识别出人物当前的情绪状态


!![[Touchabl]]

Touchabl是一款AI图片触摸及识别应用,允许用户通过简单的触摸,使在手机相册里或社交媒体上的任何图片,显示关于这张图的更多信息,例如服装、鞋子、手表等销售网站及价格


!![[微鲸科技]]

微鲸科技是一家专注于家庭娱乐的互联网科技公司,公司主要产品为一款互联网电视,旨在为“微鲸一代”的年轻家庭提供最好的智能产品和服务


!![[宽洋科技]]

深圳宽洋网络发展有限公司成立于2013年9月,专注于触屏智能音箱的研发生产和销售。致力于智能化数码消费产品、智能家居产品、信息化智能产品等,在美国纽约、德国柏林、香港、中国北京、深圳、上海、厦门等地设有研发


!![[萤石]]

萤石是海康威视旗下的安全防护产品,为家庭和小微企业用户提供实时查看、远程关爱、即时分享等全面的视频应用服务


!![[物联智能家居]]

物联智能家居是一家智能家居产品研发商,致力于将物联网技术应用于智能家居领域,旗下主要产品包括多功能环境监测器、网关全角度高清摄像机、网络智能锁、智能猫眼、智能插座等


!![[稻狗智能]]

稻狗智能是一家智能家居生产制造商,通过利用人工智能、云计算以及移动互联等科技技术,为用户提供智能家系列成品,致力于为用户提供智能安防系统、人体感应传感以及电子元器件等,同时帮助用户体验智能生活的享受



!![[苏州四维空间]]

苏州四维空间是一家消费电子和智能家居技术公司,产品有家居智慧眼、生活记录仪等


!![[Prisma]]

Prisma是一个图像处理工具,运用云端计算以及AI人工智能技术,将用户即时拍照或者选择已有照片,以名画家,例如梵高、莫奈、毕加索的笔触重新风格转变,将照片进行绘画风格化

!![[Truepic]]

Truepic是一个照片真实性平台,用于验证或认证拍摄的任何图像或视频的真实性,日期,时间和位置


!![[名画滤镜]]

名画滤镜是一款美图App,基于人工智能的P图利器,把照片变成世界名画风格,隶属于广州市聚类计算机科技有限公司


!![[Versa]]

Versa是一款基于人工智能的短视频和照片处理应用,致力于为用户提供简单易用的图片视频处理软件,用户在应用中,只需要点击适当的位置,就可以将照片变成图画、将视频变成动画


!![[脸云]]

“脸云”,一个基于人工智能进行照片分发、处理和赋能的平台,开创性的使用人脸识别技术实现人脸导航。相机直传、AI云修图、定价打赏,图文直播等功能,从多方面提升摄影师和活动主办方的增值服务能力



!![[全景数字]]

全景数字是一家信息技术研发及应用服务型企业,专注于智能高清视频监控产品及行业解决方案、系统应用集成等领域,对教育、金融、公安、商超、医疗、电讯、交通、司法、电力、水利等众多行业提供合适的细分产品与专业


!![[弘目智能]]

弘目智能是新一代智能视频监控技术的倡导者和推动者,公司专注于车牌识别、人脸识别、行为分析等视频分析算法、嵌入式智能一体机开发和智能搜索引擎等核心技术,拥有自主知识产权的20多种智能分析产品解决方案已在交

!![[海视智能]]

海视智能专注智慧交通视频大数据分析,提供基于视频的隧道、大桥、公路以及智慧城市等检测预警解决方案与行业独立数据的增值分析服务


!![[银瀑IMPOWER]]

银瀑IMPOWER是一家提供智能视频分析、算法、设备的技术公司,产品包括人脸提取跟踪及性别识别算法、面向智慧家庭体感识别算法等,隶属于北京银瀑技术有限公司


!![[GliaCloud]]

GliaCloud是一个AI视频制作平台,通过其人工智能技术会自动将内容转换成视频,并且提供客制化选项。在大数据分析以及机器学习等领域提供多种应用服务以及解决方案,致力于让用户都能享受人工智能以及大数据所带来的便利...]]


!![[XRVision Pte]]

XRVision是一家新加坡面部识别及视频分析创企,XRVision的目标就是在不受控制、拥挤的环境中,为政府和企业解决动态视频分析等问题,并通过实时连接的物联网智能解决方案,获取大量统计数据和移动资产


!![[Spektra]]

将深度神经网络、谱图理论及GPU的计算能力结合应用于人工智能领域,使其技术引擎能以智能的方式在照片和视频中将人和物体从原始背景中分离出来,并叠加新背景,并可以直接在设备上进行实时(60 FPS)处理操作


!![[图答应]]

图答应将图片识别技术与微信开发平台结合,让你的微信公共账号具备这样的能力:用户发一张图片,你可以根据图片内容做出智能应答






!![[涂图TUTUCLOUD]]

涂图是行业领先的视频图像服务商,为企业提供专业齐全的图像SDK服务和稳定可靠的图像云服务,以“端+云”的产品体系帮助企业快速完成图像、视频和直播相关的开发和部署。



!![[微林软件]]

微林软件是一家专注于计算机视觉、机械控制、设备监控和人工智能的高科技企业。通过CV、DL等各种AI技术的应用来实现对设备的视频控制,打造中小企业可以使用的人工智能


!![[佳都科技]]

佳都科技是一家人工智能技术与产品提供商,为全球提供人脸识别、视频结构化、大数据和移动支付技术与服务,并应用于智能交通、智能安防等智慧城市各个领域


!![[啦咔网络]]

啦咔网络是一家专注于人工智能研发、底层算法研究、产品业务矩阵构建的公司。在应用领域拥有多款市场导向型产品,包含熟知的看啥视频APP、棋牌游戏竞技平台、她他社、滋味live以及移动电商平台、手机工具等多款优秀的APP


!![[Conviva]]

Conviva是一家基于人工智能进行视频分析的企业,企业以机器学习为基础,致力于开发视频分析技术,同时为视频制作者提供“虚拟直播房间”,好让观众从其他角度观看视频内容
!![[Pulpix]]

Pulpix是一种视频技术,显示用户的视频内的实时互动与奖励内容,加强对观众的经验和提高收入。Pulpix客户包括GQ,WB,Vice等30多个,并且正在处理每月10万人次视频评论




!![[杭州热知科技]]

杭州热知科技专注智能图像识别技术、产品和系统解决方案,其研发的人脸追踪及人像识别技术,已经在公安部门、视频监控、智慧城市等不同场景得到应用



!![[明景科技]]

明景科技是一家大数据人工智能科技企业,专注于人工智能、视频大数据分析和挖掘在视频监控安防领域的应用以及安防领域的视频大数据分析和挖掘研究,持续管理变革,实现高效的流程化运作



!![[懵懵科技]]

懵懵科技是一家人脸识别系统研发商,主要产品包括基于云平台的动态视频客流分析、会员识别管理产品、人脸门禁产品等,广泛运营于商业地产客流及会员管理、中高档小区安防、银行大客户服务体验优化等领域


!![[利泽智能]]

利泽菲尔是一家智能图像深度信息挖掘服务平台,专注于解决智能安防监控、目标检测、人脸识别等终端分析能力有限的问题,采用分布式视频计算方法,并提供一系列算法积木式模块的方式,帮助企业针对于特定应用实现快速


!![[极视角]]

长期致力于开拓人工智能在不同行业及领域的开发与应用,旨在为企业提供最丰富的人工智能算法及解决方案。 极视角以国际领先的视频分析技术为核心,迄今积累算法200+,应用领域


!![[奥比中光]]

奥比中光是一家3D体感技术研发商,主要产品有电视体感器、游戏体感器和深度相机,同时基于3D体感技术,研发了网络3D试衣、3D监控视频和以图搜图等产品,广泛应用于娱乐教育、智能安防、自动驾驶等领域


!![[安威士]]

安威士是一家智能安防行业中多生物识别技术的电子产品供应商。公司主要从事生物识别技术相关产品及视频监控产品的研发与生产,也是集核心技术研发、专业生产制造及营销为一体的综合型企业


!![[中科奥森]]

中科奥森是一个高科技创新型平台,致力于人脸识别和智能视频技术、产品、和应用解决方案的研究。隶属于北京数字奥森识别科技有限公司


!![[Synology]]

Synology是一个智能家庭以及零售监控解决方案提供商,专注于提升视频监控体验以及为存储可扩展性的成长型企业进行设计,隶属于群晖网络科技(上海)有限公司

!![[Viscovery创意引晴]]

Viscovery创意引晴是一家图像和视频识别技术研发商,以影像辨识为基础,为用户提供专利之离线识別丶视频识別等加值服务。其技术获有多项图像演算专利,并建立亿级图资库,可支持海量图像识别反馈,并被Google评选为成功企



!![[智影]]

智影是一家人工智能在线视频制作系统研发商,用户只需要输入脚本文字,就可以直接通过云端生成相应的视频内容,自动配音,并且用户可以在线进行编辑和修改,同时预览、渲染、视频文件导出和下载等全部能在平台云端完



!![[Verbit.ai]]

Verbit.ai是一家AI智能音视频转录服务平台,可以为用户转录复杂程度高,音视频质量模糊的文件,降低人力消耗。平台还设有企业管理端口,可以帮助企业用户批量管理转录文件,及实时跟踪转录状态



!![[帕米科技]]

帕米基于深度学习的人脸识别技术通过捕获视频流里面的帧或者静态图片进行人脸检测,截取人脸后与模型训练后的库进行匹配识别,服务端将识别结果返回,并通过自主研发的人脸收集系统,海量人脸数据不断迭代训练处识别



!![[寰景信息]]

寰景信息是一家致力于视频数据处理和视频内容的智能分析技术的研发,并为客户提供行业典型解决方案的高新技术企业。寰景信息在视频浓缩、内容分析、多模态应用、视频数据挖掘、城市级三维可视化等方面拥有全系列核心

!![[创视赛维]]

创视赛维是一家智能安防服务提供商,公司专注于人工智能安防领域,致力于提供新一代智能视频大数据平台和数据运营服务,面向全球用户提供安防、可视化管理和大数据服务的解决方案


!![[汇川科技]]

汇川科技是一家物联网相关技术研发公司,主要从事物联网智能技术、机器视觉、智能认知传感技术的产品和数字化信息物理系统的研发、生产、销售、应用及服务。公司与中国电信集团公司共同研发“远程视频智能测距”


!![[雷曼实验室]]

雷曼实验室是一家致力于智能音视频,物联网及人工智能技术整合领域的先进科技企业。为音乐电影游戏爱好者提供更亲民更智能且更自由的无线多场景音频系统,隶属于雷曼实验室(深圳)科技有限公司



!![[图普科技]]

图普科技是一家基于深度学习技术解读图片和视频内容的人工智能科技公司。在2014年初创建并开放了提供各类图像识别能力的云服务平台,目前图普云平台涵盖黄暴识别、人脸识别、证件识别、场景识别、图像风格化等数十种



!![[唯信兄弟]]

公司的产品“魅瞳OceanEye”构建基于人工智能、图像视频识别和大数据分析的行业解决方案


!![[HortaTech]]

皓瞳科技-HortaTech专注于人工智能安防服务领域,致力于利用人工智能科技增强人类现实能力。HortaTech基于行业领先的人脸识别、图像识别技术,推动AI+Human在安防服务、商业数据分析等领域智能化升级,提供真正可用的好10倍的

!![[Deep Lens]]

Deep Lens是一家人工智能病理平台研发商,Deep Lens的旗舰产品是病理教育与研究的虚拟成像,简称 VIPER(蝰蛇)。 这是一个完整的堆栈解决方案,包括人工智能图像检测套件、反馈工具、云存储,以及与硬件和应用程序集成的 api接口

!![[皓图智能]]

皓图智能是一家专注于通用三维虚拟现实领域的公司,自主研发了X3D.Engine技术,基于X3D.Engine核心技术,研发了一系列3D技术应用产品


!![[锦艺搜布]]

植入AI图像识别和虚拟试衣、布料检索的B2B平台,基于人工智能图形检索技术、模特3D试衣技术,研发了真人在线试衣平台“锦艺搜布”,用户在平台找到匹配的面料后,可以根据服装设计师需要的风格、款式进行外观试穿


!![[Perceptio]]

Perceptio是一家人工智能领域初创公司,致力于实现在无需挖掘外部存储数据的情况下,开发出在智能手机上运行的人工智能图像分类体系技术


!![[TrustCheckr]]

TrustCheckr是一家印度AI欺诈分析解决方案提供商,利用大数据及AI技术为企业用户提供欺诈分析解决方案,帮助企业使用图像处理和AI技术识别欺诈、伪造或机器人配置文件。


!![[中视典]]

中视典是一家从事图形图像软件定制与相关增值业务的国家高新技术企业。中视典依托自主知识产权的虚拟现实平台软件,结合国际先进的图形图像技术、人机交互技术与互联网技术,从事虚拟现实行业应用产品研发、设计、销售



!![[Xmov]]

Xmov 是一家主打人体运动感知,理解, 捕捉, 和合成的人工智能公司,致力于打造新一代的智能交互技术,智能动画技术,和智能监控技术


!![[知衣科技]]

知衣科技是一家利用图像识别、时序分析、个性化推荐等人工智能技术服务服装电商行业的公司。隶属于杭州知衣科技有限公司


!![[品果科技]]

成都品果科技有限公司,致力于数字图像处理算法研究与探索,拥有数字图像处理和图像人工智能识别技术研究经验。旗下有Camera360、HelloCamera等


!![[Vibin]]

Vibin是一个利用图片识别等人工智能技术改造手机相册的公司,产品名为 PhotoNotes,立意于,照片就是笔记


!![[Entrupy]]

Entrupy是一家专注于利用人工智能技术鉴定奢侈品真伪的公司。主要产品是一款名为entrupy携带型扫描工具,它利用AI算法分析手袋等产品的微观成像,使用深度学习将图像与奢侈品牌数据库进行比较,包括纹理,对比度,拓扑结



!![[拓盛智联]]

拓盛智联是一家智能工厂建设解决方案提供商,公司专注于用”物联网+大数据+AI”助力智能工厂建设,公司拥有四十多项知识产权,涵盖防爆领域核心技术。产品及系统应用涵盖防爆要求的油气开采、油气集输、炼油、化工等

!![[泛贩]]

泛贩人工智能科技有限公司集自动贩卖机研发、运营、租赁和售后服务于一体的公司。旗下有多个分公司(广州、深圳、东莞、海口、成都、重庆、上海等)均设有我司的服务网络,拥有多年自动贩卖机运营管理经验。为各界人


!![[朗迪锋科技]]

朗迪锋科技是一家立足于高端制造行业、能源行业和教育行业为主的企业。从事虚拟现实、工程测试、环境模拟系统集成和服务,形成了以图形图像、信号处理和环境模拟为技术特点的三个事业部


!![[有个美工]]

有个美工是一家智能美工系统研发商,通过图像识别技术和深度学习算法,进行大规模的图片训练,并研发了基于用户需求的智能图文合成系统,和据用户行为习惯匹配的可扩展系统,从而实现模拟用户审美,提供千人千面的定制


!![[Lightricks]]

Lightricks是一家致力于计算机图形学、图像处理、机器学习和人工智能等方向的以色列初创企业

!![[利珀科技]]

利珀科技是一家以软件为核心的工业设备供应商,主要做系统解决方案和图像算法。致力于为更多的机械设备装上眼睛和大脑,隶属于杭州利珀科技有限公司


!![[瑞海工程]]

瑞海工程是一家智能化工程管理系统开发商,基于涉电作业工艺工法和人工智能图像识别技术,将管道施工被做成模块,由安装的摄像头来监控;一旦工程完成,过程哪里不规范,比如未建设安全坡道等,系统就会自动报警


!![[云智视像]]

云智视像是一家智能图像分析识别技术公司,所研制的产品广泛应用于平安城市、公共安全、金融等领域。隶属于上海仪电电子集团]]


!![[信号旗]]

国际贸易行业解决方案提供商,公司致力于从事国际贸易人工智能处理领域,目标成为国际贸易行业第一解决方案专家,管理团队由来自BAT的高管和海归博士组成的新生技术队伍,拥有图像识别和互联网技术的强大背景



!![[飞搜科技]]

飞搜科技是一家高科技公司,专注于面向企业研发人脸检测、人脸识别和图像识别等核心算法和应用,提供人脸校验、人脸属性分析、名人识别等服务

!![[米印meprint]]

米印meprint是一家运用大数据和神经网络技术的人工智能艺术设计平台,通过多卡的横向并联和纵向并联,提升了处理大图的计算能力,生成适合于商业运用的平面设计作品



!![[广州市云润大数据]]

广州市云润大数据专注于从事人工智能、大数据、云计算、企业级软件开发等服务,自主研发了分布式爬虫、中文文本处理、智能音视频处理、搜索引擎、个性化推荐引擎等产品,核心业务包括舆情与媒体大数据、企业级数据



!![[纳虚光影]]

专注于用前沿的图形图像、虚拟现实、增强现实以及人工智能技术为文化创意、工业制造、智能物流、智慧消防等领域提供全沉浸的数字内容解决方案,用于决策、协同设计、协同演练、实习培训以及展示展览等环节


!![[智媒云图]]

智媒云图是一家技术平台与行业解决方案提供商,目前已研发出基于深度学习算法的图像识别技术支持快速定制的物与种的识别扩展,广泛应用在工业自动化、智慧农业、商业智能等应用场景,为“行业+AI”提供整体解决方案和



!![[facegood量子动力]]

facegood量子动力是一家专注于CG算法研发的公司,公司目前自主研发了一套人脸表情捕捉方案,首先捕捉面部表情数据,然后做数据绑定:把捕捉获得的数据代入自己的算法模型,最后让虚拟头部“活”起来


!![[Human人工智能]]

Human人工智能是一家人脸微表情识别分析技术开发商,运用计算机学习将人脸微表情实时读取转化成情绪和性格特征,帮助公司更好地了解其客户及员工


!![[littlelights]]

Littlelights.ai 致力于成为全球领先的人工智能教育公司。其首个研发项目面向中国少儿(2-7岁)英语启蒙市场,创新型研发基于人工智能英语老师的系列人工智能虚拟直播课程。课程将整合现有成熟的AI互动基础模块和表情捕捉


!![[砺安科技]]

砺安科技是一家智能门锁研发商,公司主要以无孔智能锁的研发为主,并涉及智能家居系统领域,目前公司的主要业务包括生物识别锁、遥控锁、密码锁、感应锁、云智能锁等技术开发和应用


!![[申亚科技]]

成都申亚科技有限公司是一家提供家庭安防一体化解决方案的公司,旗下产品均为自主研发,包含智能门锁、人工智能摄像头、红外与微波传感器、全功能检测器与中央控制器等


!![[fplife指尖儿科技]]

fplife指尖儿科技是一家指纹识别应用方案供应商及产品制造商,以指纹模块为主导,产品包含日常生活领域的安全用品的隐私保护系列,提供包括指纹箱、指纹日记本、指纹包、指纹锁等产品;目前Lockbook已有20k套以上的国内企


!![[奇谷科技]]

其识别系统包括了人脸识别、行为识别和车辆识别三大体系,应用于人脸识别验证、检索;智能家居和电子门锁;火情监测;违规车辆识别;非法聚会;隐私保护等等场景中,旨在提供更好的智慧家居、门店、社区甚至智慧城市



!![[远景蔚蓝]]

针对深度学习算法进行优化,面向安防、汽车行业的提供人工智能终端,应用包括人脸识别、辅助驾驶等,隶属于北京远景蔚蓝科技有限公司



!![[BuddyGuard]]

BuddyGuard是一家人工智能家居安全摄像头制造商,能够识别、分类潜在危险信息,然后决定是否通知户主




!![[非思智能]]

非思智能是一家人工智能视觉识别公司,专注于对安防、金融、政企等客户提供智能化的人脸识别整体解决方案


!![[赛若福]]

赛若福是一家教育信息化和智能化解决方案提供商,公司专业从事教育相关信息化和智能化整体解决方案、多媒体及IT系统集成与运维、提供基于SaaS应用互联网软件等领域。公司提供专业服务包括:软件开发、互联网平台咨询及...]]




!![[海航量子智能]]

智能软硬件研发及投资,通过数字化管理、大数据分析、人工智能推送、及横向盘活、对接集团旗下内部资源,借助海航集团产业资源和资本优势为生态合作伙伴提供行业应用场景和创新创业资源,提供供应链、投融资、新零售

!![[耐能Kneron]]

耐能Kneron是一家人工智能初创企业,产品特色在于同时具备硬件及软件的人工智能解决方案,致力于将产品在智能物联网,智能车联网,安防,无人机等领域得到运用




!![[爱丽社]]

爱丽社iLux是以人工智能专利鉴定技术为切入的奢侈品共享交易平台,主要面向25~35岁的女性,提供真伪鉴定镜头及配套的智能检测算法,并进行自营包租赁以及C2C二手包买卖服务
监督学习是利用已标记的有限训练数据集,通过某种学习策略/方法建立一个模型,实现对新数据/实例的标记(分类)/映射,最典型的监督学习算法包括回归和分类。

监督学习要求训练样本的分类标签已知,分类标签精确度越高,样本越具有代表性,学习模型的准确度越高。

监督学习在自然语言处理、信息检索、文本挖掘、手写体辨识、垃圾邮件侦测等领域获得了广泛应用。 
!![[萤石]]

萤石是海康威视旗下的安全防护产品,为家庭和小微企业用户提供实时查看、远程关爱、即时分享等全面的视频应用服务

!!''公司简称''



!!''公司概况''

科大讯飞成立于1999年,在语音合成、语音识别、口语评测、语言翻译、声纹识别、人脸识别、自然语言处理等智能语音与人工智能核心技术上具备较先进水平。

2008年,科大讯飞在深圳证券交易所挂牌上市,股票代码:002230。

2017年底,科大讯飞入选中国首批四大人工智能开放创新平台,并承建了中国首个认知智能领域的国家级重点实验室。

!!''企业详情''

* 全称:科大讯飞股份有限公司
* 注册地址:合肥市高新开发区望江西路666号
* 办公地址:合肥市高新开发区望江西路666号
* 总 机: 4000199199
* 注册资本金:20.93亿元
* 关联企业:
* 公司官网:http://www.iflytek.com/


!!''管理层'':
* 董事长、总裁:[[刘庆峰|科大讯飞董事长刘庆峰]]
* 副总裁:陈涛
* 副总裁:吴晓如
* 副总裁:胡郁


!!''战略定位''

致力于建立智能语音及语言核心技术和核心技术成果产业化两大方面的竞争力。

!!''核心技术''

* 语音识别技术
* 语音合成技术
* 自然语言处理技术
* 语音评测技术
* 声纹识别技术
* 手写识别技术



!!''产品''

* 讯飞输入法
* 咪咕灵犀
* 发条
* 讯飞电视助手
* 讯飞智能音箱



!!''发展历程''

!!!2017
科大讯飞入选中国首批四大人工智能开放创新平台,并承建了中国首个认知智能领域的国家级重点实验室。

!!!2016
2016年8月8日,在科大讯飞的年中总结计划会上,刘庆峰董事长正式发布了经过提炼的讯飞使命、愿景和价值观。
科大讯飞的使命是“让机器能听会说,能理解会思考;用人工智能建设美好世界”。
科大讯飞的近期愿景是成为语音产业领导者和人工智能产业先行者,实现百亿收入、千亿市值;中期愿景是成为中国人工智能产业领导者和产业生态构建者,联接十亿用户,实现千亿收入;长期愿景是成为全球人工智能产业领导者,用人工智能改变世界的伟大企业。

!!!2015
科大讯飞重新定义了万物互联时代的人机交互标准,发布了对人工智能产业具有里程碑意义的人机交互界面——AIUI;截至目前,科大讯飞每日为近 15亿人次,13万开发伙伴和7亿终端用户提供语音及人工智能交互服务,以科大讯飞为中心的人工智能生态已经逐步构建。

!!!2014
成功举行智能家庭语音产品发布会,发布讯飞语音云3.0、灵犀3.0,正式启动“讯飞超脑计划”。

!!!2013
与中国移动、中国电信、中国联通三大电信运营商全面建立战略合作关系

!!!2012
语音云终端用户数量突破1.5亿;中小学教学产品惠及师生突破5000万;发展成为亚太地区知名的语音上市公司

!!!2011
再融资顺利完成;语音及语言信息处理国家工程实验室正式获批;员工股权激励政策实施

!!!2010
发布国内首个移动互联网智能语音交互平台——“讯飞语音云”,宣告移动互联网语音听写时代到来;“国家智能语音高技术产业化基地”落户合肥;中小学教育产品惠及师生突破2000万

!!!2009
被认定为国家级创新型企业;通信增值业务语音搜索用户突破5000万,普通话测试用户突破100万

!!!2008
科大讯飞上市,成为中国语音产业界上市企业;首获全球说话人识别大赛桂冠;语音产业基地开工建设

!!!2007
科大讯飞股份公司正式成立,智能语音芯片销量突破20万片
2006
科大讯飞首夺国际英文合成大赛冠军,至今已获十一连冠

!!!2005
科大讯飞研究院正式成立;荣获中国信息产业重大技术发明奖

!!!2004
在国家863中文语音合成国际评测中大比分囊括所有指标第一,销售收入首次迈过亿元大关

!!!2003
被信息产业部认定为“中文语音交互技术标准工作组”组长单位

!!!2002
获首批“国家规划布局内重点软件企业”认定,承接国家语音高技术产业化示范工程项目,设立博士后科研工作站

!!!2001
科大讯飞智能语音平台开发厂商突破100家,语音产业国家队地位初现

!!!2000
被认定为国家863计划成果产业化基地,与中国科大、社科院共建实验室,核心源头技术资源整合战略初见成效

!!!1999
以刘庆峰为首的大学生创业团队在合肥建立科大讯飞,中国语音产业由此起飞

!!''企业的创建''

1998年,当时在中国科学技术大学(简称中国科大)求学的刘庆峰和实验室的师兄弟们一起参加了中国的“863”项目语音合成比赛。中国科大团队研发的语音合成系统第一次将中国语音合成评测达到3分,语音合成技术可以投入应用。

一年后,刘庆峰和当时一起参赛的5名同学筹备创业,并最终组成18个人的团队创办了科大讯飞。
【以上两段内容来自中国新闻网】

!!''近期新闻''


刘庆峰,男,1973年2月出生于安徽泾县,科大讯飞董事长。

2999年,刘庆峰和18人共同创办了[[科大讯飞]]

!!简历
1990年考入中国科学技术大学,1998年获“通信与电子系统”专业硕士学位,2003年7月获“信号与信息处理”专业博士学位。中国科学技术大学兼职教授、博士生导师,中华全国青年联合会委员、安徽省青年企业家协会副会长, 中国科协七届委员和十届、十一届、十二届、十三届全国人大代表 。1999年创办科大讯飞股份有限公司,并担任总裁至今,2009年4月起同时兼任董事长。 

在2013年第十四届CCTV中国经济年度人物颁奖晚会上 荣获:“年度经济人物奖”。 2017十大经济年度人物。 2018年3月6日,刘庆峰建议,从法律法规、大数据分级保护、大数据运营者规范管理等方面对大数据资产进行保护 。

2018年10月24日,刘庆峰入选中央统战部、全国工商联《改革开放40年百名杰出民营企业家名单》。 
!!语音识别技术
语音识别技术 所要解决的问题是让计算机能够“听懂”人类的语音,将语音中包含的文字信息“提取”出来。该技术在“能听会说”的智能计算机系统中扮演着重要角色,相当于给计算机系统安装上“耳朵”,使其具备“能听”的功能,进而实现信息时代利用“语音”这一自然、便捷的手段进行人机通信和交互。

!!语音合成技术
语音合成技术 又称文语转换(Text to Speech)技术,它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术。语音合成技术解决的主要问题是将文字信息转化为声音信息,即让机器像人一样开口说话。

!!自然语言处理技术
自然语言处理技术 该技术所涵盖的研究内容非常广泛,从研究成果的表现形式来说,基本可以分为基础研究和应用两大类。

!!!基础研究:
主要指对自然语言内在规律的研究,从研究深度和难度上大致可以划分为词典编撰、分词断句、词性分析、语言模型、语法分析、语义分析、语用分析等。

!!!应用研究:
主要指基于基础研究的成果,面向不同的应用,研发相关的自然语言处理技术,大的方向包括但不限于:拼音输入法、信息检索、信息抽取、自动摘要、机器翻译、语音合成、语音识别、文本匹配、文本分类、对话系统等。

!!语音评测技术
语音评测技术 又称计算机辅助语言学习(Computer Assisted Language Learning),是机器自动对用户发音进行评分、检错并给出矫正指导的技术。语音评测技术是智能语音处理领域的研究前沿,同时又因为能显著提高受众对口语学习的兴趣、效率和效果,而有着广阔的应用前景。

!!声纹识别技术
声纹识别技术 是一种通过语音信号提取代表说话人身份的相关特征(如反映声门开合频率的基频特征、反映口腔大小形状及声道长度的频谱特征等),进而识别出说话人身份等方面的技术。它可以广泛应用于信息安全、电话银行、智能门禁以及娱乐增值等领域。

!!手写识别技术
手写识别技术 是一种让计算机能够“认识”用户在手写设备上书写的文字信息,将有序的笔迹轨迹转换为用户所书写的字符的技术。手写识别技术在智能手机、平板电脑等移动终端设备上为用户提供了一种较传统输入方式更为便利的交互方式。它使得不熟悉或不方便键盘操作的用户也能轻松上手使用各类电子设备。
旷视科技成立于 2011 年 10 月,以深度学习和物联传感技术为核心,立足于自有原创深度学习算法引擎Brain++,布局金融安全,城市安防,手机AR,商业物联,工业机器人五大核心行业,致力于为企业级用户提供全球领先的人工智能产品和行业解决方案。

旷视的核心人脸识别技术 Face++曾被美国著名科技评论杂志《麻省理工科技评论》评定为 2017 全球十大前沿科技,同时公司入榜全球最聪明公司并列第 11名。

在国内科技部火炬中心“独角兽”榜单中,旷视排在人工智能类首位。


觅我™是[[碳云智能]]的一款产品,用于帮助用户构建专属的数字生命账户,通过对健康状态的全面检测和持续监测,预知身体的变化趋势。

觅我™的应用主题涵盖营养,运动,护肤,健康、医疗,慢病6大场景
<div class="tc-table-of-contents">

<<toc-selective-expandable '目录'>>

</div>
脑机交互又称为脑机接口,指不依赖于外围神经和肌肉等神经通道,直接实现大脑与外界信息传递的通路。

脑机接口系统检测中枢神经系统活动,并将其转化为人工输出指令,能够替代、修复、增强、补充或者改善中枢神经系统的正常输出,从而改变中枢神经系统与内外环境之间的交互作用。

脑机交互通过对神经信号解码,实现脑信号到机器指令的转化,一般包括信号采集、特征提取和命令输出三个模块。从脑电信号采集的角度,一般将脑机接口分为侵入式和非侵入式两大类。

除此之外,脑机接口还有其他常见的分类方式:

* 按照信号传输方向可以分为脑到机、机到脑和脑机双向接口;
* 按照信号生成的类型,可分为自发式脑机接口和诱发式脑机接口;
* 按照信号源的不同还可分为基于脑电的脑机接口、基于功能性核磁共振的脑机接口以及基于近红外光谱分析的脑机接口。
!关于内容分享声明

我们基于“''内容希望被共享''”的理念,创建了伯乐手册,从而鼓励内容被更多的分享传播。

在鼓励分享内容的同时,我们也希望内容创作者的权利得到保护。


因此,我们参考[[CC知识共享协议|http://creativecommons.net.cn/]]提出内容共享声明,并提倡内容分享者在发布内容时,选择三种声明中的任意一种,从而保护自己的权利。



!第一种声明:

署名-相同方式分享-维权代理

!第二种声明:

禁止商用-署名-相同方式分享-维权代理

!第三种声明

禁止商用-禁止演绎-署名-相同方式分享-维权代理


!关于上述声明中五项条件的说明:

!!署名
*其他任何人在使用用户所分享的内容时,必须提到原作者

!!禁止商用

*不得用于盈利性目的

!!禁止演绎

*不得修改原作品, 不得再创作

!!相同方式分享

*在分享内容时,必须使用和原作相同的内容分享声明,且该声明的内容必须在作品中显著位置展示。

!!维权代理

*如果在使用包含了[[内容分享声明|http://www.bolebook.com/#ContentShareStatements]]的内容时,违反了内容分享声明,则内容创作者将委托律师或其他维权组织作为维权代理。


!对内容分享声明的解释:

内容分享声明,是内容创作者(包含原创者、再创作者)在发布内容时同步发布的声明。

声明的目的在于鼓励内容更多的被分享,同时要求内容使用者尊重内容创作者的权利。

!!补充条款(仅适用于伯乐手册上分享的内容):


*一、''如果内容创作者没有主动声明'',则__''默认采用第一种声明。''__

*二、如果内容创作者没有事先指定,即默认[[伯乐手册|http://www.bolebook.com]]作为维权代理。当然,内容创作者可以根据自己的要求更换维权代理

以上协议的正式法律文本未来将会补充完整。







!!潘云鹤

浙大潘教授的个人主页:https://person.zju.edu.cn/panyunhe

(1946-  )

浙江杭州人,计算机应用专家。

1981年浙江大学计算机系毕业获硕士学位,并留校任计算机系教授、系主任、副校长、人工智能研究所所长、现代工业设计研究所所长。1995年5月-2006年8月担任浙江大学校长。2006年6月-2014年6月担任中国工程院常务副院长。2013年3月-2018年2月担任第十二届全国政协常委、外事委员会主任。

兼任国务院学位委员会委员、国家教材委员会委员、国家新一代人工智能战略咨询委员会组长、中国人工智能产业发展联盟理事长、中国创新设计产业战略联盟理事长、中国发明协会理事长、中国战略性新兴产业发展专家咨询委员会副主任、中国图象图形学学会名誉理事长等职。

!!!潘云鹤是中国智能CAD和计算机美术领域的开拓者之一。

他长期从事人工智能、计算机图形学、CAD和工业设计的研究,在计算机美术、智能CAD、计算机辅助产品创新、虚拟现实和数字文物保护、数字图书馆、智能城市和知识中心等领域,承担过多个重要科研课题,创新性地提出跨媒体智能、数据海、智能图书馆、人工智能2.0等概念,发表多篇研究论文,取得了一系列重要研究成果,多次获得国家科技奖励。

1997年当选为中国工程院院士。
!![[EEGSmart云睿智能]]

EEGSmart云睿智能是脑电应用专家,已研发出的UMind是一款前额佩戴的智能脑电穿戴设备,通过采集、分析大脑的实时脑电波用于大脑与外部实现意念交互

深圳创达云睿智能科技有限公司(云睿智能),成立于2015年3月,是国内领先的生物电研究结合人工智能分析的应用解决方案提供商,与新西兰Otago大学、北京大学、中国科学院心理研究所和先进技术研究院等科研院所合作研究开发并推动产业化。 公司研发的意念机,能实时采集脑电信号数据,并结合认知心理学的研究成果,量化大脑情绪状态,实现疲劳、兴奋、沮丧、注意力、集中度检测,

同时提供生物电(脑电、心电、肌电)交互产业解决方案。

云睿智能立志打造全球领先的生物电人工智能穿戴设备,并成为一流的生物电人工智能软硬件服务开发商。

http://www.eegsmart.com
迁移学习是指当在某些领域无法取得足够多的数据进行模型训练时,利用另一领域数据获得的关系进行的学习。迁移学习可以把已训练好的模型参数迁移到新的模型指导新模型训练,可以更有效的学习底层规则、减少数据量。

目前的迁移学习技术主要在变量有限的小规模应用中使用,如基于传感器网络的定位,文字分类和图像分类等。未来迁移学习将被广泛应用于解决更有挑战性的问题,如视频分类、社交网络分析、逻辑推理等。
强化学习是智能系统从环境到行为映射的学习,以使强化信号函数值最大。

由于外部环境提供的信息很少,强化学习系统必须靠自身的经历进行学习。

强化学习的目标是学习从环境状态到行为的映射,使得智能体选择的行为能够获得环境最大的奖赏,使得外部环境对学习系统在某种意义下的评价为最佳。其在机器人控制、无人驾驶、下棋、工业控制等领域获得成功应用。 
情感是一种高层次的信息传递,而情感交互是一种交互状态,它在表达功能和信息时传递情感,勾起人们的记忆或内心的情愫。传统的人机交互无法理解和适应人的情绪或心境,缺乏情感理解和表达能力,计算机难以具有类似人一样的智能,也难以通过人机交互做到真正的和谐与自然。

情感交互就是要赋予计算机类似于人一样的观察、理解和生成各种情感的能力,最终使计算机像人一样能进行自然、亲切和生动的交互。情感交互已经成为人工智能领域中的热点方向,旨在让人机交互变得更加自然。

目前,在情感交互信息的处理方式、情感描述方式、情感数据获取和处理过程、情感表达方式等方面还有诸多技术挑战。 
人工智能在制造、家居、金融、交通、安防、医疗、物流行业的应用,由于篇幅有限,其它很多重要的行业应用在这里不展开论述。

(1)[[智能制造:机器人、无人机]]

智能制造是基于新一代信息通信技术与先进制造技术深度融合,贯穿于设计、生产、管理、服务等制造活动的各个环节,具有自感知、自学习、自决策、自执 行、自适应等功能的新型生产方式。

(2)[[智能家居]]

智能家居以住宅为平台,基于物联网技术,由硬件(智能家电、智能硬件、安防控制设备、家具等)、软件系统、云计算平台构成的家居生态圈,实现人远程控制设备、设备间互联互通、设备自我学习等功能,并通过收集、分析用户行为数据为用户提供个性化生活服务,使家居生活安全、节能、便捷等。

(3)[[智能金融]]


人工智能的飞速发展将对身处服务价值链高端的金融业带来深刻影响,人工智能逐步成为决定金融业沟通客户、发现客户金融需求的重要因素。

人工智能技术在金融业中可以用于服务客户,支持授信、各类金融交易和金融分析中的决策, 并用于风险防控和监督,将大幅改变金融现有格局,金融服务将会更加地个性化与智能化。

智能金融对于金融机构的业务部门来说,可以帮助获客,精准服务客户,提高效率;对于金融机构的风控部门来说,可以提高风险控制,增加安全性; 对于用户来说,可以实现资产优化配置,体验到金融机构更加完美地服务。

(4)[[智能交通、智能驾驶]]和[[智能物流]]

智能交通系统(Intelligent Traffic System,ITS)是通信、信息和控制技术在交通系统中集成应用的产物。

智能物流:

传统物流企业在利用条形码、射频识别技术、传感器、全球定位系统等方面优化改善运输、仓储、配送装卸等物流业基本活动,同时也在尝试使用智能搜索、推理规划、计算机视觉以及智能机器人等技术,实现货物运输过程的自动化运作和高效率优化管理,提高物流效率。

例如,在仓储环节,利用大数据智能通过分析大量历史库存数据,建立相关预测模型,实现物流库存商品的动态调整。大数 据智能也可以支撑商品配送规划,进而实现物流供给与需求匹配、物流资源优化与配置等。在货物搬运环节,加载计算机视觉、动态路径规划等技术的智能搬运机器人(如搬运机器人、货架穿梭车、分拣机器人等)得到广泛应用,大大减少了订单出库时间,使物流仓库的存储密度、搬运的速度、拣选的精度均有大幅度提升。


(5)[[智能医疗、药品研发和保健品]]

近几年,智能医疗在辅助诊疗、疾病预测、医疗影像辅助诊断、药物开发等方面发挥重要作用。


(6)[[智能安防]]

智能安防技术是一种利用人工智能对视频、图像进行存储和分析,从中识别安全隐患并对其进行处理的技术。

智能安防与传统安防的最大区别在于智能化, 传统安防对人的依赖性比较强,非常耗费人力,而智能安防能够通过机器实现智能判断,从而尽可能实现实时地安全防范和处理。
!人工智能产业发展趋势

从人工智能产业进程来看,技术突破是推动产业升级的核心驱动力。数据资源、运算能力、核心算法共同发展,掀起人工智能第三次新浪潮。

人工智能产业正处于从感知智能向认知智能的进阶阶段,前者涉及的智能语音、计算机视觉及自然语言处理等技术,已具有大规模应用基础,但后者要求的“机器要像人一样去思考及主动行动”仍尚待突破,诸如无人驾驶、全自动智能机器人等仍处于开发中,与大规模应用仍有一定距离。

!!(1)智能服务呈现线下和线上的无缝结合

分布式计算平台的广泛部署和应用,增大了线上服务的应用范围。同时人工智能技术的发展和产品不断涌现,如智能家居、智能机器人、自动驾驶汽车等, 为智能服务带来新的渠道或新的传播模式,使得线上服务与线下服务的融合进程加快,促进多产业升级。

!!(2)智能化应用场景从单一向多元发展
目前人工智能的应用领域还多处于专用阶段,如人脸识别、视频监控、语音识别等都主要用于完成具体任务,覆盖范围有限,产业化程度有待提高。随着智能家居、智慧物流等产品的推出,人工智能的应用终将进入面向复杂场景,处理复杂问题,提高社会生产效率和生活质量的新阶段。

!!(3)人工智能和实体经济深度融合进程将进一步加快
党的十九大报告提出“推动互联网、大数据、人工智能和实体经济深度融合”,一方面,随着制造强国建设的加快将促进人工智能等新一代信息技术产品发展和应用,助推传统产业转型升级,推动战略性新兴产业实现整体性突破。另一方面, 随着人工智能底层技术的开源化,传统行业将有望加快掌握人工智能基础技术并依托其积累的行业数据资源实现人工智能与实体经济的深度融合创新。
!人工智能的产业分布

人工智能与行业领域的深度融合将改变甚至重新塑造传统行业,目前已经初步形成了独有的产业体系。

从[[人工智能基础硬件]]到[[人工智能技术开发和解决方案]]提供,再到具体落地的[[人工智能产品和服务]]方面


!一、[[人工智能基础硬件]]

创新的芯片和传感器,人工智能技术的基石

!二、[[人工智能技术开发和解决方案]]

人工智能技术包括:
[[机器学习]]、[[知识图谱]]、[[自然语言处理|语音、语义处理及应用]]、[[计算机视觉]]、[[人机交互]]、[[生物特征识别]]、[[虚拟现实/增强现实]]等关键技术。

基于人工智能技术与各行业的结合,出现了诸多解决方案,并产生了不同领域的应用。

!三、[[人工智能产品和服务]]


人工智能在制造、家居、金融、交通、安防、医疗、物流行业的应用,由于篇幅有限,其它很多重要的行业应用在这里不展开论述。

# [[智能制造:机器人、无人机]]
# [[智能教育:自然语言处理和计算机视觉]]
# [[自然语言处理和硬件的结合]]
# [[计算机视觉的技术和应用]]和 [[智能安防]]
# [[智能金融:大数据处理]]
# [[智能交通、智能驾驶]]和[[智能物流]]
# [[智能医疗、药品研发和保健品]]
# [[VR、AR和MR]]

!四、[[大型公司及领军企业]]

!人工智能的技术领域

依据参考框架中所涉及到的人工智能相关技术,近二十年来人工智能领域关键技术的发展状况:

[[机器学习]]、[[知识图谱]]、[[自然语言处理]]、[[计算机视觉]]、[[人机交互]]、[[生物特征识别]]、[[虚拟现实/增强现实]]等关键技术。

!人工智能的技术领域技术

!![[机器学习]]

(1)根据学习模式将机器学习分类为监督学习、无监督学习和强化学习等。

[[监督学习]] 

[[无监督学习]]

[[强化学习]]

(2)根据学习方法可以将机器学习分为传统机器学习和深度学习。   

[[传统机器学习]]

[[深度学习]]



(3)此外,机器学习的常见算法还包括迁移学习、主动学习和演化学习等。

[[迁移学习]]

[[主动学习]]

[[演化学习]]


!![[知识图谱]]

知识图谱本质上是结构化的语义知识库,是一种由节点和边组成的图数据结构,以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体—关系—实体”三元组,以及实体及其相关“属性—值”对。

!![[自然语言处理]]

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向,研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,涉及的领域较多,主要包括机器翻译、机器阅读理解和问答系统等。 

(1)[[机器翻译]]

(2)[[语义理解]]

(3)[[问答系统]]

!![[人机交互]]

人机交互主要研究人和计算机之间的信息交换,主要包括人到计算机和计算机到人的两部分信息交换,是人工智能领域的重要的外围技术。
人机交互技术除了传统的基本交互和图形交互外,还包括语音交互、情感交互、体感交互及脑机交互等技术,以下对后四种与人工智能关联密切的典型交互手段进行介绍。

(1)[[语音交互]]

(2)[[情感交互]] 


(3)[[体感交互]]

(4)[[脑机交互]]


!![[计算机视觉]]

计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。

(1)[[计算成像学]]

计算成像学是探索人眼结构、相机成像原理以及其延伸应用的科学。

(2)[[图像理解]]

图像理解是通过用计算机系统解释图像,实现类似人类视觉系统理解外部世界的一门科学。

(3)[[三维视觉]]

三维视觉即研究如何通过视觉获取三维信息(三维重建)以及如何理解所获取的三维信息的科学。

(4)[[动态视觉]]

动态视觉即分析视频或图像序列,模拟人处理时序图像的科学。


(5)[[视频编解码]]

视频编解码是指通过特定的压缩技术,将视频流进行压缩。


!![[生物特征识别]]


生物特征识别技术是指通过个体生理特征或行为特征对个体身份进行识别认证的技术。

生物特征识别技术涉及的内容十分广泛,包括指纹、掌纹、人脸、虹膜、指静脉、声纹、步态等多种生物特征,其识别过程涉及到图像处理、计算机视觉、语音识别、机器学习等多项技术。

目前生物特征识别作为重要的智能化身份认证技术,在金融、公共安全、教育、交通等领域得到广泛的应用。

下面将对指纹识别、人脸识别、虹膜识别、指静脉识别、声纹识别以及步态识别等技术进行介绍。


(1)[[指纹识别]]

(2)[[人脸识别]]

(3)[[虹膜识别]]

(4)[[指静脉识别]]

(5)[[声纹识别]]

(6)[[步态识别]]


!![[虚拟现实/增强现实]]

虚拟现实(VR)/增强现实(AR)是以计算机为核心的新型视听技术。

结合相关科学技术,在一定范围内生成与真实环境在视觉、听觉、触感等方面高度近似的数字化环境。

用户借助必要的装备与数字化环境中的对象进行交互,相互影响,获得近似真实环境的感受和体验,通过显示设备、跟踪定位设备、触力觉交互设备、数据获取设备、专用芯片等实现。
!人工智能的起源与历史

人工智能始于 20 世纪 50 年代,至今大致分为三个发展阶段:

第一阶段(20 世纪 50 年代——80 年代)。这一阶段人工智能刚诞生,基于抽象数学推理的可编程数字计算机已经出现,符号主(Symbolism)快速发展,但由于很多事物不能形式化表达,建立的模型存在一定的局限性。此外,随着计算任务的复杂性不断加大,人工智能发展一度遇到瓶颈;

第二阶段(20 世纪 80 年代——90 年代末)。在这一阶段,专家系统得到快速发展,数学模型有重大突破,但由于专家系统在知识获取、推理能力等方面的不足,以及开发成本高等原因,人工智能的发展又一次进入低谷期;

第三阶段(21 世纪初——至今)。随着大数据的积聚、理论算法的革新、计算能力的提升,人工智能在很多应用领域取得了突破性进展, 迎来了又一个繁荣时期。人工智能具体的发展历程如图 1 所示。

[img[historyofai.png]]

图 1 人工智能发展历史


长期以来,制造具有智能的机器一直是人类的重大梦想。

早在 1950 年,Alan Turing 在《计算机器与智能》中就阐述了对人工智能的思考。他提出的图灵测试是机器智能的重要测量手段,后来还衍生出了视觉图灵测试等测量方法。

''1956年,“人工智能”这个词首次出现在达特茅斯会议上,标志着其作为一个研究领域的正式诞生。''

六十年来,人工智能发展潮起潮落的同时,基本思想可大致划分为四个流派:符号主义(Symbolism)、连接主义(Connectionism)、行为主义(Behaviourism)和统计主义(Statisticsism)。

这四个流派从不同侧面抓住了智能的部分特征,在“制造”人工智能方面都取得了里程碑式的成就。 

1959 年,Arthur Samuel 提出了机器学习,机器学习将传统的制造智能演化为通过学习能力来获取智能,推动人工智能进入了第一次繁荣期。20 世纪 70 年代末期专家系统的出现,实现了人工智能从理论研究走向实际应用,从一般思维规律探索走向专门知识应用的重大突破,将人工智能的研究推向了新高潮。

然而, 机器学习的模型仍然是“人工”的,也有很大的局限性。随着专家系统应用的不断深入,专家系统自身存在的知识获取难、知识领域窄、推理能力弱、实用性差等问题逐步暴露。从 1976 年开始,人工智能的研究进入长达 6 年的萧瑟期。 

在 80 年代中期,随着美国、日本立项支持人工智能研究,以及以知识工程为主导的机器学习方法的发展,出现了具有更强可视化效果的决策树模型和突破早期感知机局限的多层人工神经网络,由此带来了人工智能的又一次繁荣期。然而,当时的计算机难以模拟复杂度高及规模大的神经网络,仍有一定的局限性。

1987 年由于 LISP 机市场崩塌,美国取消了人工智能预算,日本第五代计算机项目失败并退出市场,专家系统进展缓慢,人工智能又进入了萧瑟期。 

1997 年,[[IBM]] [[深蓝(Deep Blue)]]战胜国际象棋世界冠军 Garry Kasparov。这是一次具有里程碑意义的成功,它代表了基于规则的人工智能的胜利。2006 年,在 Hinton 和他的学生的推动下,深度学习开始备受关注,为后来人工智能的发展带来了重大影响。

''从 2010 年开始,人工智能进入爆发式的发展阶段,其最主要的驱动力是大数据时代的到来,运算能力及机器学习算法得到提高''。人工智能快速发展,产业界也开始不断涌现出新的研发成果:

2011 年,[[IBM]] Waston 在综艺节目《危险边缘》中战胜了最高奖金得主和连胜纪录保持者;

2012 年, [[谷歌]]大脑通过模仿人类大脑在没有人类指导的情况下,利用非监督深度学习方法从大量视频中成功学习到识别出一只猫的能力;

2014 年,[[微软]]公司推出了一款实时口译系统,可以模仿说话者的声音并保留其口音;

2014 年,[[微软]]公司发布全球第一款个人智能助理微软小娜;

2014 年,[[亚马逊]]发布至今为止最成功的智能音箱产品 Echo 和个人助手 Alexa;

2016 年,[[谷歌]] AlphaGo 机器人在围棋比赛中击败了世界冠军李世石;

2017 年,[[苹果]]公司在原来个人助理 Siri 的基础上推出了智能私人助理 Siri 和智能音响 HomePod。

''目前,世界各国都开始重视人工智能的发展。''

2017 年 6 月 29 日,首届世界智能大会在天津召开。

中国工程院院士[[潘云鹤]]在大会主论坛作了题为“中国新一代人工智能”的主题演讲,报告中概括了世界各国在人工智能研究方面的战略:

2016 年 5 月,美国白宫发表了《为人工智能的未来做好准备》;

英国 2016 年 12 月发布《人工智能:未来决策制定的机遇和影响》;法国在 2017 年 4 月制定了《国家人工智能战略》;

德国在2017 年5 月颁布全国第一部自动驾驶的法律;

在中国, 据不完全统计,2017 年运营的人工智能公司接近 400 家,行业巨头百度、腾讯、阿里巴巴等都不断在人工智能领域发力。

从数量、投资等角度来看,''自然语言处理、机器人、计算机视觉''成为了人工智能最为热门的三个产业方向。
!人工智能的特征

(1)由人类设计,为人类服务,本质为计算,基础为数据。从根本上说, 人工智能系统必须以人为本,这些系统是人类设计出的机器,按照人类设定的程序逻辑或软件算法通过人类发明的芯片等硬件载体来运行或工作,其本质体现为计算,通过对数据的采集、加工、处理、分析和挖掘,形成有价值的信息流和知识模型,来为人类提供延伸人类能力的服务,来实现对人类期望的一些“智能行为”的模拟,在理想情况下必须体现服务人类的特点,而不应该伤害人类,特别是不应该有目的性地做出伤害人类的行为。
 

(2)能感知环境,能产生反应,能与人交互,能与人互补。人工智能系统应能借助传感器等器件产生对外界环境(包括人类)进行感知的能力,可以像人一样通过听觉、视觉、嗅觉、触觉等接收来自环境的各种信息,对外界输入产生文字、语音、表情、动作(控制执行机构)等必要的反应,甚至影响到环境或人类。

借助于按钮、键盘、鼠标、屏幕、手势、体态、表情、力反馈、虚拟现实/ 增强现实等方式,人与机器间可以产生交互与互动,使机器设备越来越“理解” 人类乃至与人类共同协作、优势互补。

这样,人工智能系统能够帮助人类做人类不擅长、不喜欢但机器能够完成的工作,而人类则适合于去做更需要创造性、洞察力、想象力、灵活性、多变性乃至用心领悟或需要感情的一些工作。 


(3)有适应特性,有学习能力,有演化迭代,有连接扩展。人工智能系统在理想情况下应具有一定的自适应特性和学习能力,即具有一定的随环境、数据或任务变化而自适应调节参数或更新优化模型的能力;并且,能够在此基础上通过与云、端、人、物越来越广泛深入数字化连接扩展,实现机器客体乃至人类主体的演化迭代,以使系统具有适应性、鲁棒性、灵活性、扩展性,来应对不断变化的现实环境,从而使人工智能系统在各行各业产生丰富的应用。 
!![[NVIDIA]]	

人工智能硬件	

GPU 、深度学习超级计算机 DGX-1 、自动驾驶超级计算机 Xavier	

市值 366 亿美元	

!![[英特尔]]	



人工智能硬件	

CPU 、 Xeon Phi 、Nervana	

市值 1782 亿美元	

!![[高通]]	



人工智能硬件	

移动智能设备芯片	

市值约 970 亿美元	



!![[ARM]]

ARM是英国一家芯片开发公司,有近半数用于智能手机,不过其余芯片多用于日常智能设备,比如洗衣机和电视等

!![[寒武纪科技]]

寒武纪是一家智能芯片研发公司,拥有终端和服务器两条产品线。2016年推出的寒武纪1A处理器(Cambricon-1A)是世界首款商用深度学习专用处理器,面向智能手机、安防监控、可穿戴设备、无人机和智能驾驶等各类终端设备



!![[华为]]



通讯设备厂商,成功推出了AI芯片  昇腾910

以及深度学习框架:深度学习框架MindSpore



!![[Wave Computing]]	

深度学习芯片架构	DPU (Dataflow Processing Unit)	两轮融资 2450 万美元	

!![[龙加智科技]]

龙加智是一家人工智能芯片研发商,公司致力于研发高速的TPU芯片。团队的所有核心成员均为来自硅谷的资深芯片工程师,具备了丰富的高速高吞吐量并行计算的芯片开发经验

!![[深思创芯]]

深思创芯是一个人工智能神经网络平台,专注于人工智能神经网络芯片的设计与研发,目前已经研发了一颗人工智能神经网络平台芯片,这颗芯片面积只有9平方毫米,芯片内置多个核心,每个单核心可实现三层神经网络

!![[芯视达]]

芯视达是一家专注于研发设计 CMOS 图像传感器及系统级芯片的无晶圆厂半导体公司,产品适用于当今各种消费类电子产品,如手机、 笔记本、 平板电脑和数码相机和摄像机

!![[中星微人工智能]]

中星微人工智能是一家AI芯片研发商,致力于一方面结合现有AI算法上的最新进展如对抗网络等解决一部分问题,另一方面通过让AI2.0和传统人工智能AI1.0的技术快速结合,采取双引擎的方式

!![[AI人工智能芯片]]

AI人工智能芯片是一家芯片及其行业解决方案提供商,隶属于北京天实信互联网科技有限公司

!![[Wave Computing]]

Wave Computing是一家人工智能芯片制造商,致力于通过定制处理器来加速AI技术的发展,旗下研发的芯片主要用于AI训练和推理阶段,致力于为用户提供快速高效的深度学习计算机解决方案

!![[Gyrfalcon Technology]]

Gyrfalcon Technology是一家美国AI芯片研发商,自主研发了“光矛处理器Lightspeeur2801S”,适用于CNN、RNN等常见深度神经网络的模型训练及推理,产品主要包括单芯片、计算棒、板卡等多种形态,广泛应用于移动边缘计算、智能监控。

!![[WestWellLab西井科技]]

一家专注研究Neuromorphic Engineering神经形态工程的类脑强人工智能商业公司,即模拟人脑神经元工作原理而制造出的芯片,它既具备人脑的学习能力,又具备强大的特定运算能力,仅需一块邮票大小的芯片,就能模仿人类大脑在

!![[合一智芯]]

合一智芯科技是一家专注于面向机器视觉领域的端侧软硬件IP开发及芯片设计的公司,致力于通过定制软件+专用芯片的组合,大幅提升端侧智能化质量与效率,降低机器视觉方案应用成本。





[[Deep Vision]]	  

人工智能视觉算法	将人工智能算法和低功耗芯片技术相结合,开发了技术指标先进的低功耗人工智能芯片,提高智能设备的视觉识别能力。		

[[ ALCES]]	  

人工智能视觉算法	在手机摄像头的微小尺寸上实现高清超动态的 3D图像感知,大大提高智能机器对环境的感知水平。	

[[Ceva]]	

人工智能芯片技术	用于机器学习的第二代神经网络软件框架 CDNN2	B 轮 420 万美元	

[[TeraDeep]]	

基于传统的 ARM和其它移动处理器平台上的深度学习算法	可以嵌入移动设备的深度学习模块		



!![[Hailo Technologies]]

Hailo Technologies是一家深度学习芯片研发商,专注于嵌入式设备研发深度学习芯片的研发与运营,主要应用于设备的内嵌式人工智能应用程序,涵盖无人机、汽车、摄像头以及智能家用电器等行业

[[Kneron]]	 

神经网络处理器NPU 及解决方案	Kneron 可以提供终端的NPU ,并组建软件 、硬件、云服务 和 端协同的整套 NPU 解决方案。		

[[寒武纪]]	

深度学习	中国首款神经网络处理器	千万天使投资	

[[深鉴科技]]	

神经网络压缩、编译、神经网络处理器 DPU 设计、 FPGA 开发、系统集成完整开发能力	深度学习 DPU 平台		

!![[深维科技]]

深维科技是一家智能FPGA芯片开发商,基于现有的FPGA芯片推出了一系列面向AI应用的FPGA设计工具,提供FPGA AI应用加速等服务,并通过EDA工具提升开发效率与开发速度





!![[万众一芯]]

万众一芯是一家拥有自主知识产权的电学基因芯片开发商,专注于研发新一代分子检测中国芯,以电代替光的半导体分子检测技术,以及纳米传感器等



!![[广芯电子]]

广芯电子是一家专注于集成电路设计的公司,公司致力于模拟和混合信号集成电路芯片和加速度传感器芯片的设计、开发和销售,目前公司的产品主要应用于电脑、通信、汽车电子以及普及化的民用电子产品



!![[深迪半导体]]

深迪半导体是一家生产用MEMS陀螺仪系列惯性传感器芯片的公司,注于为消费电子及汽车电子市场提供商用MEMS陀螺仪芯片,以及为客户提供全面的应用解决方案



!![[杭州国芯]]

杭州国芯是一家硬件开发商,专注于数字电视、家庭媒体中心及人工智能领域的芯片设计、系统方案开发及芯片销售,数字电视芯片产品已涵盖DVB全球标准及中国标准的所有数字电视接收终端领域

!![[视信源]]

北京视信源科技成立于2005年,是一家持股型公司,不经营具体业务,其资产主要为持有的思比科53.8514%股权,思比科则是一家专门从事CMOS图像传感器芯片和相关图像处理芯片研发和销售的高科技公司



!![[乃尔]]

乃尔是一家综合硬件公司,专注于研发各种科学原理的振动和冲击传感器、位移传感器、速度传感器、压力传感器以及各类优质高效的传感器系统和解决方案,自主设计了MEMS芯片和压电陶瓷材料



!![[思立微电子]]

思立微电子是一家硬件领域的公司,专注于生物传感器IC的研发和销售。主要从事新一代智能移动终端传感器SoC芯片和解决方案的研发与销售。市场瞄准正在快速稳健成长的智能移动互联网终端,致力于提供极高性能、极优成本

!![[Lightmatter]]

Lightmatter是美国一家光子芯片研发初创公司,公司制造的光子芯片从本质上来讲,可以以光速进行计算,一路秒杀晶体管

!![[贝尔赛克]]

贝尔赛克是一家生物识别科技公司,致力于移动设备、物联网应用市场。凭借指纹半导体传感器、指纹算法技术、指纹算法芯片产品,在指纹IC设计、算法、行业/系统应用方面积累了丰富的经验



!![[探境科技]]

探境科技是一家嵌入式人工智能技术研发商,专注于AI芯片的研发,主要从事人脸识别、语音控制、无人驾驶、机器视觉等人工智能技术的应用,致力于为人工智能产品提供全套解决方案

!![[全志科技]]

全志科技是一家智能应用处理器和智能模拟芯片设计厂商

!![[思比科微电子]]

思比科微电子专门从事CMOS图像传感器和图像处理芯片的研发和销售,主要面向智能手机、平板电脑、可穿戴式设备、安防监控、智能汽车、医疗影像等移动互联网和物联网中使用的CMOS图像传感器芯片的研发和销售

!![[魔力安全]]

魔力信息是一家专注指纹识别和人工智能的科技企业,向客户提供指纹识别算法、指纹芯片、专业服务和身份识别解决方案



!![[炬佑智能]]

炬佑智能是一家智能传感与人工智能系统产研发商,专注于开发和提供智能传感与人工智能系统产品和方案。产品包括激光雷达(TOF)芯片和系统, 三维图像提取和建模,虚拟现实及增强现实合成,智能人脸识别,手势识别和

!![[异构智能Novumind]]

异构智能Novumind是一家人工智能科技公司,旗下有人工智能项目“异构神机”,提供围棋AI服务;为汽车、安防、医疗、金融等领域提供ASIC芯片+训练模型的全栈式AI解决方案,落地应用包括安防摄像头、自动驾驶汽车



!![[燧原科技]]

针对云端数据中心开发的深度学习高端芯片, 定位于人工智能训练平台。芯片将采用自主研发的独特创新架构,具有高算力、高能效比、可编程、低成本、 支持主流机器学习框架等特点,专为云端AI 训练设计和优化。公司研



!![[他山科技]]

作为自主技术方创建,他山科技是国内首家致力于人工智能触摸传感器芯片产业化的高科技公司,他山科技的核心技术是发展于平面电容技术的曲面电容传感技术。公司致力于开发和提供基于该技术的通用智能传感器芯片

!![[BrainChip]]

BrainChip是一家人工智能研发商,研发了能够模拟人类神经系统的神经元芯片,可以用人类大脑相似的方式处理信息,因此预测股票市场趋势也会更加“人性化”。除了预测股市之外,该公司的技术还能应用在语音和图像识别

!![[LeapMind]]

LeapMind是一家人工智能芯片制造商,能在小型计算环境中实现深度学习,并且在提高深度学习进度,降低计算复杂度的基础上,把该技术功能带入到物联网和机器人应用里。此外,该公司另一大优势是实现了原始芯片架构的优化



!解决方案

!![[鲲云科技]]

鲲云科技提供物联网移动及野外节点人工智能芯片及解决方案,让前端图像捕捉设备无需连接后台服务器即可进行本地化人工智能,自主研发的雨人平台支持对图像采集节点进行专业分析,用以支持人工判断。人工智能+人工判

!传感器

!![[思知瑞生物传感器]]

思知瑞科技是一家生物反馈技术、生物传感器开发公司,主要产品涉及:脑波传感器、脉搏传感器、心电传感器、肌肉电传感器、BCG传感器等等生物传感器,服务于国内著名大专院校、消费电子、科研机构、心理健康等行业

!![[芯奥微]]

芯奥微是一家从事MEMS传感器研究、开发和生产的公司,专注于提供高品质的半导体硅基麦克风及其他传感器件产品,致力于进行MEMS陀螺仪、MEMS加速计和MEMS高度计的研发



!![[智芯原动]]

智芯原动是中国领先的人工智能+解决方案提供商,致力于加快人工智能技术应用于各个行业,以提升用户体验和提高效率。成立于2012年,专业从事人工智能算法和算法芯片技术研究,智能化产品和解决方案的开发交付及智能云



!![[中天微]]

中天微是一家嵌入式CPU、芯片架构授权服务商,致力于32位高性能低功耗嵌入式CPU、以芯片架构授权为核心业务的集成电路设计公司,中天微系统拥有针对各种嵌入式应用场景的CPU技术发展路线图,隶属于杭州中天微系统有限公司

!![[维锐智能]]

维锐智能是一家工业自动化及工业智能领域的硬件公司,专注于研发LED数码管自动测试机,LED数码管全自动检测、打包、包装一体机,车灯自动测试等



!![[先见智控]]

先见智控科技开发支持边缘计算的智能工业传感器和数采终端,基于机器学习云端的智能诊断,服务于工业设备预测性维护。致力于帮助传统工业企业降低设备管理、维护成本,减员增效,实现智能工厂



!![[智梭科技]]

智梭科技是一家高科技企业,专注于新型传感器开发与物联网应用



!![[立瓷电子]]

立瓷电子是一个智能监测传感器与设备制造商,提供电力、石油、化工、通信、军工、 教育等行业的核心设备设施远程智能监测解决方案



!![[微奥科技]]

微奥科技是一个以微纳系统技术(MEMS)和微纳传感器为核心技术的产品研发公司,并着力开发以此为基础的医疗器械、生化分析、光通信及消费电子等产品

!![[中智仿真]]

拥有计算机仿真技术、人工智能技术、传感器融合技术、计算机三维视景应用技术等自主研发先进技术

!![[知觉科技]]

知觉科技是一家从事光纤传感器与智能仪器仪表、光纤传感系统、物联网应用的研发生产和制造的公司。主要面向城市地下管廊、城市管线安全预警、长输油气管道、危化品储库、智能电网等,提供基于分布式光纤传感技术安全

!![[莱思特]]

莱思特智能科技是一家专业研发设计生产室内/外LED照明传感器产品的高科技企业,2013年研发的室内LED照明传感器具有相关发明和实用实型专利,广泛使用于办公室、会议室、图书室、工埸车间、洗手间等室内场所,真正实现人

!![[Vayyar]]

Vayyar成立于2011年,是一家3D图像传感器研发公司,为移动设备、智能硬件等提供更低成本的传感器



!![[深圳绿拓科技]]

深圳绿拓科技致力于研发和推广绿色科技,产品包括各类传感器、控制器、基于总线的系统级控制管理硬软件、远程监控系统等



!![[傲意科技OYMotion]]

傲意科技是一家提供基于肌电信号提供手势交互方案的公司,公司致力于依靠表面肌肉电信号+运动传感器,通过裹在人体前臂上的传感器来监测手指牵引的相应肌肉群,并依靠核心算法翻译、转化成相应的信号输出

!![[糖球科技]]

致力于通过基于大数据的人工智能运算系统和高精度智能传感器,建立基于新秩序的智能世界。公司的主要业务是利用设计研发和大数据计算等能力,围绕家庭生活设计和研发各类智能硬件产品,

!![[iSmart Alarm]]

iSmart Alarm是一家集研发,设计、生产、销售于一体的智能安防和智能家居的高科技公司,智能安防系统包括智能摄像头、无线遥控器、红外移动传感器、烟雾报警器,云存储,智能插座等。隶属于天津华来科技有限公司

!![[北京必创科技]]

北京必创科技是一家物联网及无线传感器网络技术研发和销售服务商,产品涉及各种传感器、无线网关、测控软件等

!![[安润普SOFTCEPTOR]]

安润普是一家柔性传感技术供应商,基于其独有的SOFTCEPTORTM技术,为材料测试、医疗保健、运动与工业客户提供高价值的产品与技术服务,目前产品包含柔性传感器件和网络、无线数据采集、分析和传输平台与应用解决方案等



!![[贡晋实业]]

贡晋实业是一家安防监控产品提供商,公司致力于提供传感器、镜头产品以及相关摄像机、模组的解决方案和技术支持,目前公司的主要业务包括光电成像产品的设计及制造、电子零部件的销售、自动化设备与非标件的制造与销



!![[WYSEngine智擎信息]]

WYSEngine智擎科技是一家基于人工智能的工业设备预测性维护平台,通过工业设备传感器数据采集、大数据处理、机器学习提供故障分析及预警解决方案和服务

!![[Skydisc]]

Skydisc是一家数据管理服务提供商,主要业务是为物联网(IoT)提供可拆卸传感器,以及为人工智能提供数据管理的一站式服务

!![[友练Usense优宝创]]

深圳市优宝创科技是一家专注于智能运动系列传感器的技术公司,产品应用领域有:羽毛球,乒乓球、网球、高尔夫球等球拍类传感器,目前产品有Usense无线智能球拍传感器、友练产品等



!![[意行半导体]]

意行半导体是一家专注车载雷达射频前端单片微波集成电路产品开发和销售的公司。在微波/毫米波领域,已经建立MMIC设计、封装设计、晶圆测试、封装测试等开发团队和产业环境;建立了满足40 GHz(可扩展到110GHz)微波/毫米波
人工智能技术包括:

[[机器学习]]、[[知识图谱]]、[[自然语言处理]]、[[计算机视觉]]、[[人机交互]]、[[生物特征识别]]、[[虚拟现实/增强现实]]等关键技术。



!![[DeepMind]]	

专注于人工智能基础研究	产品:AlphaGo 、医疗健康、谷歌内部产品应用。已被Google收购。

!![[Bonsai]]	

专注于深度学习,Inkling 脚本语言和集成开发环境 Mastermind		

!![[Preferred Networks]]	

专注于深度学习	深度学习操作系统Chainer ,机器学习在物联网的应用		

!![[Skymind]]	

专注于深度学习	深度学习企业应用包 SKIL、开源框架Deeplearning4j		

!![[H2O.ai]]	

专注于机器学习	开源机器学习平台和商业化支持		

!![[Uptake]]	

专注于数据挖掘、机器学习	为铁路、建筑等大行业提供数据预测分析 SaaS 服务		

!![[Indico]]	

专注于机器学习	为数据科学家提供图像、文本的识别和分析的工具		

!![[第四范式]]	

专注于机器学习	金融应用和「先知」平台		

!![[华院数据]]

华院数据是一家专注于数据挖掘和数据分析的服务公司

!![[Vertex.AI]]

Vertex.AI致力于让每个平台的深度学习技术开发成为可能,并为此打造了深度学习引擎PlaidML

!![[RussellCloud]]

RussellCloud是一款为提升深度学习算法开发、部署效率而打造的计算平台产品,用户无需配置本地环境,无需单独购买GPU服务器,无需自行下载数据集,几条命令轻松开始训练你的第一个深度学习模型

!![[智溪科技]]

智溪科技是一家在人工智能领域负责机器深度学习算法的研究及内容开发的企业,隶属于浙江智溪科技有限公司





!![[凹梗MEME]]

凹梗MEME是一家人工智能写作工具服务商,致力于基于UGC的增量素材库打造AI写作工具,在选题、创作、采编、校对和排版等方面为用户提供便利,致力于节约内容创业者创作时间,此外,还结合了区块链技术对平台内容进行版权

!![[奇弦智能]]

奇弦智能是一家组织智能计算平台研发商,也是一个构建基于大数据的强因果模型、实现商业组织运行可计算的人工智能团队,帮助管理者在运行团队、运行项目时获得实时的增强智能的信息

!![[昌恩智能]]

昌恩智能是一家经国家工信部、广东省公安厅、广东省住建厅批准认证的在建设“智慧城市”背景下为客户提供智能化整体解决方案的综合性企业。致力于以建筑智能化、智能交通为主营业务。

!![[Flipside Crypto]]

Flipside Crypto是一家美国人工智能算法开发服务提供商,利用专有波动率、区块链节点跟踪算法来评估俱乐部的密码,并将这些工具授权给基金、投资者和公司寻求有关加密货币指标的信息



!![[One Labs]]

One Labs是一家人工智能手机应用服务商,专注于人工智能的初创公司

!![[赤子城]]

赤子城是一家全球化人工智能内容服务商,依托自主研发的 Solo Aware 人工智能引擎,专注于为全球用户提供内容服务。赤子城在人工智能领域取得多项突破,获得多项专利,主要研究方向为信息识别、自动规划、智能搜索

!![[魔脑]]

双猴科技是一家致力于人工智能产品研发的软硬一体化企业。定位为 “人工智能服务商” ,打造实用的家庭生活场景的软硬件产品,给用户缔造可视、可感、便利、个性化的未来智慧生活



!![[Perspica]]

Perspica是一家人工智能数据分析服务商,专为使用微服务和容器技术的现代应用程序而设计,通过深入学习和高级分析提供启发式异常检测,自动化故障排除和可行的建议





技术研究及应用:

!![[图灵人工智能研究院]]

图灵人工智能研究院是由图灵奖得主姚期智院士创办的新型研发机构,致力于促进人工智能产业高端发展,建立AI技术为传统产业的赋能平台



!![[拉队科技]]

拉队科技致力于人工智能领域,专注于AI/MI(人工智能/机器学习)的核心-深度学习算法。团队的核心汇集业内专业人士,致力于打造专业服务平台

!![[宇洋智能]]

宇洋智能是国家高新技术企业、双软资质企业、广东省和广州行业协会会员,致力于移动智能应用系统与移动智能终端产品的研发、生产和服务,为用户提供全新的应用理念、完整的系统解决方案和高品质的服务。

!![[云歌智能]]

云歌智能(RINGLE.AI),成立于2018年2月26日,公司致力于开发人工智能调度系统,结合最新的区块链技术保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据,让每个独立的个体都能找到自我实现的

!![[Phantom Tiger人工智能]]

Phantom Tiger人工智能是一家专注挖掘行业数据, 以大数据与人工智能为行业提供决策支持方案的企业,专注于打造工业智能化、生产自动化;减低岗位危险系数,提高产品检测的质量与效率,隶属于深圳灵虎至真智能科技有限公

!![[铎力智能]]

铎力智能是世界顶级家庭自动化系统制造商,对家庭常用设备如各种灯、电动窗帘、暧气、冷气、家电等的集成控制提供了全面的解决方案,使人们的生活更加舒适和安全

!![[SpotDraft]]

SpotDraft是一家印度人工智能法律助手研发商,自主研发了法律合同生命周期管理平台,基于机器学习算法自动处理法律合同,为企业复杂的法律事务提供解决方案,包括起草、管理和存储在线法律文书工作、自动化分析合同



!![[上海律团]]

上海律团网络是一家智能法律顾问,产品为“小律”、以智能客服为切入点,基于AI技术和区块链技术提供法律服务解决方案的科技公司。目前主要面向法律相关领域的B端客户提供SaaS服务,其核心用户包括法律回帖性咨询网站

!![[安森智能]]

安森智能是一家以网络智能计量仪器为核心方向

!![[芯球科技]]

芯球科技是一家专注人工智能核心算法研究和产品开发实现的公司。已实现案例包括汽车品牌舆情分析、血压数据建模、车型车牌识别、试题拍照识别搜索、客服系统说话人识别、视觉+惯性导航模块等

!![[睿云网络]]

睿云网络,致力于为企业客户提供带保障的优质高速的安全连接服务。核心团队拥有硅谷多年的通信和云领域研发经验,并拥有广泛的海外客户群体以及全球交付服务能力



!![[大洋通信]]

大洋通信是一家通信服务公司,以“智慧地球”、”感知生活“为概念所衍生出来的物联网,包括智能电网、智能交通、智能物流、智能家居、环境安全侦测、智慧医疗、智慧农业行动商务等业务





!![[成都驿路科技]]

成都驿路科技是一家智能健康产品解决方案提供商,主营业务为智能产品与智能家居系列产品的研发,其自主品牌BabyJoy电磁辐射健康卫士,为第三方健康平台提供一站式的健康数据终端采集方案





!![[拼便宜]]

拼便宜是基于C2B/S2B(按需供应)结合智能匹配算法,产仓配一体化,实现三流(信息流、商流、物流)即时交互处理,为B端用户提供更灵活、更低成本、更高时效的柔性供应链体系,是一家供应链底层服务商。



!![[环球视野科技]]

环球视野科技是一家致力于提供办公、全宅智能化解决方案的高新科技公司,业务范围涵盖智能家装、智慧工装的设计与施工、提供智能化全系统解决方案,引进先进控制系统理念,率先推出真正适合国内用户的聪明、安全、节





!![[Bonsai]]

Bonsai是一个美国人工智能服务平台,通过优化旗下人工智能平台,简化开源机器学习库Tensorflow,帮助企业构建自己的人工智能服务,或是将人工智能整合到企业业务内

!![[PereDoc青燕祥云]]

PereDoc是一款基于机器深度学习技术的智能影像辅助诊断平台。通过标注有病理证实肺结节特征,建立3D CT标注影像数据库,通过构建识别诊断模型的训练和验证,提高其识别准确率。北京青燕祥云科技有限公司旗下



!![[麦信数据科技]]

致力于模块级机器学习物联网终端产品,将人工智能算法与窄带物联网相结合,开发推广物联网智能产品应用平台。公司致力于低功耗物联网行业应用产品开发,研发出人工智能算法与物联网结合的电梯物联网智能

!![[云脊智能]]

帮助企业快速完成产业升级,拥抱产业互联网,实现人工智能。云脑前端支持企业各种应用:管理、销售、服务、app、微信公号、官网以及线上和线下各种通道,后端可以智能控制生产全过程和实现产品智能化,核心对信息

!![[深境智能]]

深境智能是一家提供人工智能应用开发和解决方案的企业,专注于以智能的自动化数据分析与挖掘为核心来构建平台,在数据预处理、分布式存储、查询等常规大数据处理手段之上,通过文本分析、多媒体内容理解、统计分析、

!![[中电智能]]

中电智能第一家专注于建筑智能化领域的系统集成工程。公司主营业务是从事建筑智能化工程]]



!![[Neuralink]]

Neuralink是一家脑机交互智能研发商,致力于打造一个脑机交互界面,通过人机接口增强大脑的认知能力,未来或能帮助人们克服癫痫等慢性病,甚至实现脑对脑的交流



!![[薄言]]

薄言是一家专注于通用机器学习和自然语言技术的研究的公司。拥有深度神经网络的“薄言超脑”



!![[拓明科技]]

拓明科技是一家专注大数据应用综合解决方案提供商,主要关注移动通信网络大数据采集、数据挖掘领域及高精定位技术





!![[有数科技]]

有数科技是一家高新技术创业公司,致力于研发、销售基于人工智能深度学习技术的大数据应用产品和相关服务,为国内外客户提供专业化的海量数据分析、处理及相关服务





!![[思迈纵横]]

思迈纵横是一家企业管理信息咨询及大数据挖掘解决方案提供商。公司主要业务是通过对海量企业信息的挖掘,运用云计算,云存储,智能计算等技术对企业进行全方位评估及行业预测分析





!![[LVX利奥]]

LVX利奥是一家提供智能零售解决方案的服务公司,专注于为商家提供数字化产品和市场策划方案,主要产品有智能试衣、智能量体、电子橱窗、电子抽奖、基于人脸识别的CRM系统







!![[论之语]]

论之语是一家网络安全与大数据解决方案提供商,公司致力于网络安全、大数据、人工智能等领域技术研究,目前公司的主要业务为网络安全相关软件的研发及销售





!![[澎峰科技]]

优化解决方案提供商,致力于为嵌入式系统、云计算以及人工智能应用需求提供性能产品和服务。主要包括部署OpenBLAS、端口OpenBLAS定制硬件或操作系统、开发包装或与第三方软件集成及性能调优等服务





!![[科技谷]]

科技谷是一家专注于大数据技术与应用服务的高科技企业,为航空旅游、交通管理、公共安全等领域提供大数据整体优化解决方案,比如利用大数据进行客户精准画像的安全防卫系统



!![[易道博识]]

易道博识是一家专注于计算机视觉、模式识别、人工智能、深度机器学习的公司,核心技术:包括身份证识别、银行卡识别、行驶证识别、发票识别、银行表单识别、支票识别、3D人脸识别、手写识别等;产品有:易开户助手





!![[明略数据]]

明略数据是一家专注于关系挖掘的大数据行业应用解决方案提供商,以自主研发的大数据平台MDP为基础,围绕关系挖掘DataInsight、商业智能Discovery、数据关联分析SCOPA等核心产品,提供一系列数据深度分析平台和软件

!![[万界数据]]

万界数据是一家专注于大数据人工智能服务的创业公司,通过涵盖航空、电信、金融、消费等多个领域的核心数据,帮助合作伙伴进行内外部的数据整合、清洗、挖掘,打造数据资产管理体系,并通过征信和场景化营销进行变现





!![[Augmn Inc]]

北京奥阁门网络科技有限公司是一家将人工智能技术和地理定位技术结合的公司,致力于希望通过移动应用和人工智能,将信息和人随时随地自动链接起来,帮助人们在城市中生活得更聪明、更容易



!![[易建科技]]

易建科技是一家以云计算、物联网技术为基础的公司,主要业务涉及云计算、大数据、“智慧+”解决方案,涵盖政府、金融、航空、旅游多个行业





!![[Swim.ai]]

Swim.ai是美国一家边缘计算软件提供商,该公司的“SWIM EDX”产品将本地数据以及本地机器学习相结合,从所有连接设备中提取数据

!![[MadaData马达数据]]

马达数据拥有国内领先BI技术,向企业提供新一代商业智能BI系统,通过整合、分析及可视化企业内部及外接大数据,助企业高效制定商业决策:实时精确,互动直观,安全可靠



!![[Educational Initiatives]]

印度教育信息化解决方案提供商,专注于使用机器学习和人工智能技术,为印度K12阶段学生用户提供教育服务,旗下开发有“Mindspark”平台,旨在基于地图理念,引导学生自己掌握学习知识点,进而提供数学和英语专业的教育解决方案



!![[ZenCity]]

应用人工智能(AI)帮助为城市规划者和管理者提取有意义的“结构化”数据,得出他们所在地区的居民最关心的问题和趋势





!![[Ravelin]]

Ravelin是一家企业安全服务商,利用机器学习帮助电子商务公司对抗和预测欺诈风险。该公司最近还为支付服务提供商开发了一种产品,并表示将继续投资于其他功能,以补充其退款保护的核心主张。

!![[Peritus.ai]]

利用人工智能技术,能够实现端到端服务工作流程自动化,主动预测产品设计,过去事件、配置和日志数据,从中挖掘出支持需求和事件特征









!![[Veerum]]

Veerum是一家工业物联网AI分析平台,将数字技术与资本项目交付相匹配,能够在实际影响成本和时间表之前预测和解决虚拟世界中的问题,以帮助用户加快向可行的资本项目交付过渡,有效地创建和维护关键基础设施



!![[Fetcher]]

Fetcher是一家AI招聘服务商,专注于用AI技术搜寻和匹配人才,为企业节省成本





!![[GeoSpock Ltd.]]

GeoSpock是一个大规模数据集成平台,能够以可视化方式和毫秒级速度,处理大量情境数据,该平台的架构能够凭借其基于云的高性能服务infin8、illumin8和extrapol8,在亚秒级反应时间内,对地理空间和时态数据点进行分析

!![[Autogrid]]

AutoGrid是一家美国AI能源解决方案提供商,依托人工技能、大数据分析等技术手段,通过实时和大规模管理网络化分布式能源(DER),来协助公用事业、电力零售商、可再生能源项目开发商等用户进行能源的供应和管理

!![[Travelsify]]

Travelsify是一家内容分析平台,其利用人工智能(AI)帮助实现品牌的差异化和产品的货币化



!![[Hazy]]

Hazy是一家英国基于云的AI解决方案提供商,专注于提供基于云的AI解决方案,旗下开发的AI平台通过机器学习实现自动化,允许组织通过自动匿名化数据的工作流工具共享数据,帮助企业搭建使数据集能够符合GDPR标准的共享系统





!![[魔数科技]]

魔数科技是一家大数据和智能应用科技服务公司,为企业提供通用型机器学习智能解决方案。企业只需要通过标准化的接口API提供模型训练所需要的数据,平台就可以自动训练模型并且在验证结果之后自动部署到亚马逊的公有云

!![[云芯科技]]

云芯科技是一家专注于数据中心云计算整体解决方案的科技公司,云芯不仅提供数据中心服务器、存储虚拟化的整合方案,同时为用户在应用系统迁移与高可用、混合云计算平台容灾、负载均衡和智能DNS等方面提供服务





!![[知用科技]]

致力于运用移动互联网、虚拟现实、大数据、人工智能等新一代信息化技术推动职业教育变革和创新,为高校、职业院校和机构提供教育及衍生产业信息化咨询、研发、运营等服务,以提升教育产业信息化水平为目标



!![[快兔物流]]

物流运作解决方案和代管服务的智能化物流平台,以“人工智能+云服务+大数据”为核心能力,通过互联网创新技术,优化整合社会运力,满足中小企业碎片化的物流运作需求,有效帮助中小企业降低物流成本





!![[中云智慧]]

中云智慧是一家智能安全产品解决方案供应商。公司的主要业务范围包括软件开发和智慧安全产品研发。致力于口岸查验领域的科技应用、装备智能化、系统软件开发,主要为检疫查验、海关监管、交通物流、跨境电商等行业提供服务



!![[漓之龙]]

漓之龙是一家科技公司,致力于身份识别产品和应用系统的研发,以系统集成的方式为大型中高端客户提供解决方案,并以此作为发展方向的企业。





!![[云视互动]]

融智服务云是云视互动面向企业服务提供的一站式解决方案,企业通过此平台,可以实现电话、网页、wap、app、微信、微博、邮件等方式的统一接入处理。服务人员通过此平台,统一处理各接入渠道的问题,可极大节省服务时间





!![[DTing比奇创新]]

DTing比奇创新——行业领先的感知交互方案提供商,为智能硬件厂商提供手势识别方案和服务







!![[华瑞新智]]

向中小企业提供AI技术服务,公司以大数据处理以及人工智能算法核心技术的研发为基础,将AI的各种复杂算法和模型封装起来,为中小企业用户提供一站式人工智能解决方案,搭建一键式人工智能分析平台





!![[清华天安]]

清华天安是一家移动互联网服务商,主要从事互联网IT服务及建筑智能化系统集成等业务,专注于在智能化信息化配套设施建设与园区通信和IT服务等领域提供解决方案



!![[翱旗科技R7]]

翱旗科技是一家专注于数据领域的技术公司,致力于实时数据采集、智能数据集成、精准数据服务、全面数据管理等针对数据处理的关键技术研发和服务,并面向不同行业的客户提供数据管理的解决方案和专业服务。





!![[中科视拓Seetatech]]

Seeta中科视拓是一家专注于人脸识别技术的公司,致力于以人脸识别作为切入点,逐渐拓宽业务,最终走向“深度学习的技术服务”,为更多企业,尤其是中小型企业,提供人工智能的研发能力





!![[科箭软件]]

科箭软件是一家物流供应链解决方案及云服务提供商,公司致力于帮助企业构建数字化供应链网络,实现供应链全流程可视化,目前公司的主要业务包括订单管理、运输管理、仓储管理系统的开发以及提供技术解决方案



!![[逸星科技]]

逸星科技是一个信息智能行业、以应用解决方案为核心的服务提供商,致力于移动通讯行业的应用开发、业务咨询及产品运营,致力于建设包括各行业用户、独立软件开发商、专业系统集成商和服务商、应用软件供应商、计算机



!![[Blink Identity]]

Blink Identity是一家人脸识别技术研发商,使用面部识别技术以全步行速度识别人,在任何照明条件下每分钟处理60人以上,从而提供访问控制和个性化客户体验

!![[Verge Genomics]]

搭建了一个数据平台,包含了疾病理解、机器学习和人工智能等领域的数据集



!![[前海运通]]

前海运通是一家人工智能生态系统服务商。围绕智能培训、智能开发、智能测试、智能制造、智能运维、 智能营销,创建全球领先的人工智能IT服务生态系统;



!![[Sqrrl Fintech]]

个性化的推荐引擎,此外,还计划采用机器学习和人工智能来改进推荐引擎、客户体验和安全性

!![[百分之五十一]]

百分之五十一是一家基于智能技术的新兴信息技术企业,从事智能互联网和物联网,提供基于信任,持久和智能的服务产品和平台;建立积极开放,透明的管理体制和文化





!![[买卖在线]]

买卖在线是一个B2B的企业供需平台,一个人工智能商机推广平台,通过Ai技术、搜索技术、大数据等技术手段,以达到智能推荐、精准推荐供需双方的需求

!![[紫豹科技]]

紫豹专注于威胁情报领域的相关技术的研发与应用推广,提供真实有效的威胁情报。以大数据分析、人工智能等技术,建立黑产人员的模型档案。同时基于档案数据完成预判、分析、侦破的流程,打击网络犯罪

!![[EditorAI丹翰云端]]

EditorAI是一个 网络编辑人工智能辅助系统,致力于帮助中国新闻媒体引入智能化的工作方式,通过人工智能的辅助让编辑的工作更富效率。惠州市丹翰云端科技有限责任公司旗下产品



!![[航征测控]]

航征测控是一家集民用小型雷达研发、生产、销售和技术咨询为一体的公司,公司致力于民用小型雷达设备及其应用型产品的研发制造以及提供技术解决方案服务,目前公司的主要产品有雷达水位计、雷达流量计、雷达流速仪等



!![[T2Cloud云途腾]]

T2Cloud云途腾是一家中国制造,纯内资的云计算技术公司,从事云计算技术研究与市场化,面向企业级用户,提供云平台产品交付及定制开发、超融合一体机及混合云解决方案



!![[天霆云计算]]

天霆云计算是一家桌面虚拟化供应商,是一家从事云计算领域的高新技术企业,已为多家企业、机关提供了IT办公服务,隶属于天霆云计算科技(上海)有限公司



!![[易研科技]]

易研科技是一个研发机构,专注于品牌监测平台、网络舆情监测平台、信息管理系统、调查系统、数据挖掘系统及数据可视化的开发和提供咨询服务

!![[捕鱼网]]

捕鱼网服务在线招聘市场,为求职者精准推荐工作机会,为招聘经理精准匹配求职者。公司推出的捕鱼ATS(求职者追踪系统),专注于人岗匹配,帮助客户自动化精准匹配求职者和岗位,实现招聘信息到候选人的精准触达





!![[Looker]]

Looker 成立于2011年,是一家商业智能领域的创业公司,主要利用人工智能方式进行大数据收集与分析





!![[三智头]]

三智头是一家人工智能领域综合型集团企业,从事工业大数据计算后台、工业模块数字模拟、工业自动化设计等,致力于为全球各产业提供智能升级、产业整合,商业布局、软件研究,大数据服务等一体化解决方案

!![[DASINFO点石数据]]

DASINFO点石数据是专注于一级市场的数据智库,通过整理和分析大量数据,并通过机器学习、大数据算法和可视化数据分析来帮助天使投资人、VC、PE、上市公司、母基金及政府等更智能化的决策

!![[SuperCloud天地超云]]

SuperCloud天地超云是一家云计算服务器和云基础设施供应商,为用户打造云计算基础设施的整体解决方案

!![[奥凌OOHLink]]

通过平台的标准化产品和大数据处理技术,为传统户外广告媒体快速赋能,使户外广告媒体达到媒体资源程序化购买、支持多元化人机互动、投放过程智能化监测、投放效果数据化分析、潜在意向用户二次线上投放等



!![[智凯科技]]

智凯科技是一家AI猪重测量解决方案提供商,基于人工智能与大数据技术,自主研发了手机智能猪估重系统,通过⼿机摄像头,实现无接触猪体重测量,同时自动生成猪成长档案和勾绘猪生长曲线,并与标准生长参数做对比

!![[华眸智能]]

华眸智能是一家致力于轨道交通智能智慧大数据云平台及安全检测领域的技术研发和技术推广的公司,公司定位于以机器视觉、智能控制技术运用为基础,以大数据分析技术为核心,共享机器人及大数据分析技术,致力于轨道交通

!![[万应云]]

万应云是一家通过应用AI人工智能技术与机器学习,提供最前沿数据驱动营销服务的公司。公司致力于系统设计搭建,数据集成,分析,同步,到可视化报表,大数据技术平台搭建、营销管理和咨询服务

!![[青铜建服]]

青铜建服是一个关注建筑安全领域的人工智能科技品牌,专注于在DT时代,运用在人工智能领域核心技术,以实现施工安全“零事故”为目标,构建工程施工领域“人材机”大数据平台,隶属于南京榭客智能科技有限公司

!![[Vis维思智能]]

Vis维思智能是一家提供传统酒店智能化服务的公司,致力于重塑传统酒店的管理和服务,推动酒店行业进入智能时代,隶属于深圳市维思智能有限公司

!![[ethome智家]]

ethome智家是一家专注于为企业提供智能升级服务的公司,致力于帮助企业在短时间内进行产品智能迭代升级,助力企业从产品公司走向产品服务型公司,提高产品粘度和利润。隶属于杭州小问智能科技有限公司



!![[超级球场]]

超级球场是一家智能化硬件开发公司,以研发智能化足球装备系统、个人健康监测管理系统、大数据服务系统为目标,致力于智能化体育和健康管理等领域

!![[ROSS Intelligence]]

ROSS Intelligence是一家人工智能律师服务提供商,帮助法律团队分类案例法,找到与新案件相关细节,以机器学习技术对关键词搜索进行了强化,在加快搜索过程的同时,所搜索条目的相关性也更高

!![[3TEN8.AI]]

3TEN8.AI是一家人工智能无线网络服务提供商,不仅能够诊断和预测降级和故障,还能自动优化运营商的优先级,从而有效地分配资源,提高用户的整体体验,最大限度地减少客户流失率



!![[SambaNova System]]

SambaNova是一家生产计算机处理器以及人工智能和数据分析软件的公司

!![[酷聊智能科技]]

目前在人工智能、互联网、物联网、智能穿戴、ICT产品技术方案、基因医疗与精准检测技术等领域取得了良好的科研基础和成果

!![[Socialhub+]]

天正聚合作为探索新零售+人工智能领域的创业公司,有超过十五年的大型企业IT服务经历,曾为阿迪达斯、SWATCH Group、微软在内多个500强客户提供基于微软技术的系统服务。研发方案“Retail Next”是一款助力实体零售跨越数字化

!![[法狗狗]]

法狗狗是一家基于人工智能的案情预测系统研发商,目前产品形态为机器人插件,服务涉及刑事、婚姻、交通、劳动合作等四个领域。普通用户可以通过简单输入信息,快速获得专业精准的案情预测;律师可以通过详细的深度案



!![[Mooring]]

Mooring是一个智能恒温睡垫品牌。通过检测用户睡眠和个体特征以及环境等数据并进行智能计算,全面提升睡眠体验。产品分为睡毯和APP和智能中枢。智能恒温睡垫可以实现智能控温,智能暖床,以及一键烘干功能

!![[MicroNature]]

MicroNature是一家集设计研发、生产制造、市场销售为一体的科技公司,专注于智能家居领域,给客户定制舒适的家居环境

!![[深视科技]]

深视科技是一家从事体感技术研发与推广的公司。公司致力于研发自主知识产权的新一代体感解决方案。公司专注于无需穿戴设备,通过三维计算机视觉,依靠自主研发的计算机学习算法,准确快速的实现人体姿态和手势的识别

!![[智柚科技]]

智柚科技是一家人工智能技术公司,致力于降低机器学习的门槛、研发第四代自适应机器学习技术,并将其推广到各行业应用

!![[Strobe]]

Strobe是一家激光探测与测量技术研发商,致力于研发一种激光雷达技术,能在不降低性能的情况下,减小激光雷达的尺寸和价格

!![[云祺商贸]]

云祺商贸是一家智能家电研发公司,聚焦人工智能家电,定位中高端市场,重塑新一代家庭的生活体验,产品囊括全球工业设计大奖,云米以研发实力、不同的黑科技、工业设计、人性化体验及服务,隶属于大连云祺商贸有限公

!![[辰天科技]]

辰天科技是一家在智能家居领域有着深厚背景及研发实力的创业公司,主营方向为软硬件一体化的智能家居解决方案

!![[Riminder]]

Riminder是一个基于人工智能技术的简历智能筛选平台,能够帮助企业HR跳脱出单一岗位的限制,从更宏观的角度理解岗位的招聘需求所在,筛选标准涵盖企业文化、行业趋势等因素。



!![[WeAI]]

WeAI是一家人工智能技术方案提供商,旨在为企业的的市场营销分析和预测赋能。WeAI会采集和清理数据(包括客户提供的数据,以及外部获取的数据),从不同维度对数据进行基本情况的刻画,然后通过用户画像了解实际需求,

!![[北京文安]]

北京文安是一家从事人工智能核心算法和产品的研制与开发的公司,致力于推动公司人工智能产品的研发与技术创新]]

!![[浩思智慧]]

浩思智慧是一家智能家居整体解决方案提供商,专注于通过利用物联网、大数据、云计算、人工智能技术,打造智慧生活新平台,致力为用户提供智慧生活系统工程集成服务,隶属于浩思八方科技(北京)有限公司



!![[赛翼智能]]

广东赛翼智能业务主要涵盖智慧城市、云计算数据中心、建筑智能化、轨道交通智能化、互联网可视门禁对讲管理系统研发、生产、销售及配套服务等。赛翼智能是智能化系统解决方案专业提供商,业务链涉及智慧城市项目咨询

!![[天立泰]]

天立泰是一家信息智能化系统和信息技术服务商,专业从事计算机系统集成、智能化的专业咨询、应用软件开发、提供信息化解决方案等领域。公司拥有建筑智能化设计与施工一体化二级资质、安全技术防范行业资信等级



!![[鸿鹍科技]]

鸿鹍科技是一家社区智能环保设备生产商,专注社区垃圾分类,集社区智能环保设备生产与应用、文化传媒产业开发运营、社区运营与工程维修、商业物业投资与开发为一体,研发生产全自动智能回收机,并自主社区运营。开发





!![[风报]]

风报是一个基于人工智能的企业情报分析系统,包括工商、涉诉、税务、行政处罚、投融资、高管变动、企业经营业务等信息,上海风报企业征信服务有限公司旗下产品

!![[IMIO积木智能]]

创智云IMIO是一家Maker智能家居硬件开源社区及分发平台,产品有嵌入式硬件开源操作系统 IMIO OS、支持原生React Native的开发框架的智能硬件APP Store等

!![[智扬通达]]

智扬通达是一家商务智能产品、咨询与服务供应商,公司坚持将BI商务智能(Business Intelligence )及相关业务作为企业的核心专注点,根据BI实施规律和理解创造了有智扬特色的BI体系实施方法论,并已在多个BI项目中得到良好应用



!![[美易来]]

美易来是一家专注于研发人工智能家电产品,集生产、销售和服务于一体的公司,其产品主要有美易来人工智能灶

!![[诸葛io]]

诸葛io是国内领先的数据智能决策平台,于2015年3月上线,经过持续迭代和升级,2017年初从数据分析平台延伸至更加完整的一站式智能营销分析及自动化平台。通过以用户为中心的分析方法,洞悉用户行为画像、提升用户生命周期

!![[广电运通]]

广电运通聚焦从金融安全到城市大安全的战略布局,致力于成为全球公共安全人工智能技术服务商,集自主研发、生产、销售及服务全产业链于一体,业务涵盖智能金融、智慧政务、智能交通与平安城市等领域

!![[Zilliz]]

Zilliz是一家人工智能数据处理平台研发商,致力于通过人工智能技术提升数据处理平台的数据处理能力,在用户的计算程序不能够满足数据处理的需求时通过数据处理平台优化计算资源处理方式,上海赜睿信息科技有限公司旗下

!![[MindTurbo明仑智能]]

MindTurbo明仑智能认知引擎是一家专为脑力工作者打造的SaaS产品的公司。它善于从非结构化信息中探索联结的知识

!![[精宸科技]]

精宸科技是一家致力于物联网软件产品的研发与物联网系统的集成的公司,主要应用于仓储物流、重要资产管理(医疗、办公)、军队物资管理、婴儿防盗、学生管护等

!![[智铀科技]]

智铀科技是一家人工智能应用开发商,专注于人工智能技术研究和开发,降低机器学习门槛,并研发出了全自动机器学习平台“EBRAIN”

!![[敏动电子]]

敏动电子是一家致力于开发智能电子产品的民营高新企业,致力于嵌入式电子产品的软件开发。得益于智能电子产品的普及,公司拓展了多个产品的开发,当前公司主营业务是为客户提供便携高保真音乐播放器方案

!![[偶橙]]

偶橙是一个人工智能营销解决方案提供商,同时提供数据源和数据能力,一方面通过营销方案沉淀客户,一方面通过DMP刻画客户画像,更重视品牌零售商垂直领域。依托微软企业客户资源,主要面向大中型品牌

!![[九爱科技]]

九爱科技是一家专注于智能产品研发的移动互联网公司,围绕链接“亲情和爱”,通过智能手机、可穿戴设备、社区智慧云、社区服务O2O、社区养老及医疗等,深度整合亲情产业链资源,打造“智慧社区”互联网亲情生态系统

!![[网宿科技]]

网宿科技是一家互联网业务平台提供商,专注于提供全球范围内的内容分发与加速、服务器托管与租用、以及面向运营商的网络优化解决方案等服务



!![[云思创智]]

云思创智是一家人工智能算法应用平台,将人工智能深度学习技术中机器视觉和自然语言理解相结合,提供基于视觉、自然语言等大数据的人工智能算法应用PaaS平台。现应用于工业、政府、金融、医疗等领域

!![[任学堂]]

任学堂是一家人工智能+教育产品研发商,专注教育培训,业务涵盖早教、学前、中小学、大学考试、留学咨询、网络课堂等,旨在为学员提供一站式的学习服务,致力于通过计算机模拟具有30-40年教龄的特级教师的教学能力

!![[易泊时代]]

易泊时代是一家移动互联网公司,是互联网+模式下的一家科技型企业,主要从事快递流通智能化信息技术研发、成果转化、商业运营。

!![[Broadlink]]

Broadlink是一家智能家居设备研发商,通过整合物联网、云计算、大数据及人工智能等先进技术,打造全新的智能家电互联平台CloudThink,主要智能家居系列产品包括智能遥控、智能插座、智能环境监测仪等

!![[卡多宝]]

卡多宝是一家集“智能硬件生产、互联网软件开发、物业管理系统服务”为一体的公司,旗下“智慧社区手机门禁云系统”具备多项专利

!![[利每家]]

利每家科技有限公司是一家以智能净水系统为载体,利用先进的互联网+、实时在线监测、精准订单通信、精准广告投放、移动应用、大数据分析技术与各行各业进行深度融合,采取跨界整合资源,倡导利他共赢经营理念

!![[WiFiPix无限向溯科技]]

WiFiPix是一个室内定位与智能感知技术服务商,提供基于智能移动设备、便捷易用的室内精确实时定位、导航与地图产品以及方案。北京无限向溯科技有限公司旗下产品



!![[数智慧科技]]

公司旗下“DI智能运维平台”是一款基于人工智能技术的实时运维大数据分析平台,可用于实时监控、故障诊断、变更前后智能检查等场景





!![[AntWorks]]

AntWorks是一家人工智能及自动化产品解决方案提供商,主要提供机器人自动化处理服务,包括无需编程要求的RPA产品

!![[海赛人工智能]]

海赛人工智能是一个人工智能科技领域研究开发机构,提供人工智能产品的开发和销售等服务,支持云计算技术、仿真技术、大数据技术的研发、设计,包括计算机软件的开发和设计

!![[NetraDyne]]

NetraDyne是一家人工智能应用解决方案研发商,这个公司开发的装置装在后视镜的后面,它总共有四个摄像头,分别面对马路、司机,还有两个周边摄像头在两侧。这个装置可以看到司机看见的任何东西,分析司机的表现

!![[Machinify]]

Machinify是美国一家人工智能分析公司,通过Machinify,企业用户可以利用原始数据来训练自己的系统,并强调想要优化哪个方面,随后机器就会根据以往的决策,自行计算,并进行指导

!![[深合智能]]

一家基于机器视觉、卷积神经网络、深度学习、大数据等技术,开发应用于人工智能+新零售垂直行业的整体技术解决方案的服务提供商



!![[Celential.ai]]

Celential.ai是一家人工智能驱动服务商

!![[远微电子]]

机电一体化+人工智能+移动互联网,创造新的产品,创造新的商机。产品为扫码充值型呼叫铃

!![[Fluenty]]

Fluenty是一家对话式人工智能技术提供商,开发的应用程序,可以给出基于AI技术的最佳文本回复

!![[One Concern]]

One Concern是一家人工智能灾害预测服务提供商,其人工智能预测技术叫做Seismic Concern,目前主要用于震灾防备和响应。经过训练的人工智能模型能够理解建筑物的结构完整性,掌握地震活动信息,以及提供受影响人口的统计数据

!![[Actify Data Labs]]

Actify Data Labs是一家人工智能数据服务科技初创公司。帮助企业客户做出更加明智、快速的决策,继而提升业务效率



!![[Suplari]]

Suplari提供了一个以人工智能驱动的采购服务平台,连接并统一不同的供应商数据源和系统,通过分析数据点以及跨企业系统之间的交互,以产生实时的AI驱动见解,减少支出,并降低风险

!![[亚美欧科技]]

我们是一家开启用户随身人工智能生活“WAITER”为标签的AI科技公司,帮助用户解决“订” “用” 和 ‘体验’泛生活交互,为餐饮,娱乐,酒店,实体商家提供一个有温度的行业配置

!![[博古培今]]

专注于基于人工智能(AI)的媒传、教学领域,拥有自主知识产权的知识图谱技术和AI识别技术,产品线涵盖媒体融合实验室、基于AI的出版和智能导学平台,目标是将有价值的信息精准推送给需要此价值的人

!![[HelloCode]]

HelloCode是一家专注于人工智能教育科技服务商,HelloCode为中小学生提供了一体化的人工智能编程服务,通过引入源自美国硅谷编程机器人及人工智能教育理念助孩子们完成人工智能编程入门

!![[贪心科技]]

贪心科技是一家服务于在线教育行业的人工智能公司。 是一个以人工智能和大数据课程为主的自适应学习平台



!![[Noodle.ai]]

Noodle.ai是一家人工智能机器学习系统开发商

!![[Cerebri AI]]

Cerebri AI是大脑AI人工智能和机器学习的先驱

!![[Albert Technologies Ltd]]

Albert Technologies Ltd是企业的第一个人工智能营销平台,推动全自主数字营销活动

!![[卓亚云智能]]

卓亚云智能是一家智能家居服务解决方案提供商,专业从事智能家居系统的研发、生产、推广、销售、安装及服务,致力于打造出智能、智能声控、智能影音、智能密室、智能健康等智能家居控制系统





!![[天启慧眼]]

天启慧眼是一家专注于人工智能技术研究与产品创新的高科技公司。拥有完全的自主知识产权,并在医疗、安防、农业、金融、翻译、游戏等领域实现了应用落地,具备承载国家人工智能战略使命的能力。



!![[十三科技]]

十三科技以大数据及人工智能技术为核心,为政府、企业和机构提供与其场景应用相结合的大数据+人工智能的智慧解决方案。以企业必备的客户服务为切入点,深耕金融、旅游行业客户,成为专家级垂直行业智慧解决方案提供





!![[罗伯特]]

罗伯特是一家智能电网领域综合技术解决方案和产品生产商,公司一直致力于发展世界领先的智能电网领域安全可靠的技术和产品]]









!![[BingooMirror]]

BingooMirror是一家可隐藏式交互产品供应商,致力于为市场提供镜子外观的可隐藏式交互产品,隶属于苏州冰格智能科技有限公司

!![[博看辰思]]

图灵创新是一家致力于人工智能产品研发、技术应用及人才服务的企业,公司旨在通过人工智能ML/DL(机器学习/深度学习)技术领域,整合大数据云平台,为客户提供一站式人工智能技术综合解决方案,隶属于深圳博看辰思



!![[瀚硕智能]]

瀚硕智能是一家致力于人工智能家庭应用领域的产品研发与营销的公司。公司创始初期致力于家庭管家服务型机器人的研发,产品获得红点设计大奖。目前公司着重深度开发人工智能核心算法





!![[布本智能]]

布本智能是一家企业服务领域的公司,致力于在内容推荐上,围绕推荐引擎打造了展示前端与操作后台,以产品形态代替以往的服务商模式,直接为企业输出内容板块解决方案,主打产品智能内容平台“头条云”,让你快速拥有







!![[Kunlun AI]]

Kunlun AI(昆仑人工智能科技)是一家专注人工智能的科技公司,致力于为企业提供人工智能与大数据技术的行业解决方案

!![[享控智能]]

物联网应用服务共享平台,致力于物联网技术与人工智能技术的挖掘、整合并应用于企业,帮助中小型企业向物联网企业转变,主要业务是为企业提供物联网云服务一站式解决方案,帮助企业快速实现智能化

!![[Deeplearning.ai]]

Deeplearning.ai成立于2017年,是一家探索AI前沿的人工智能科技公司,以打造AI技术关键基础设施为目标,目前主打深度学习课程培训





!![[星云Clustar]]

星云Clustar是一家提供人工智能云服务的高科技创业公司,致力于将超算的科研和技术成果应用到商用领域,为企业AI生态系统打造高效的分布式机器学习系统。星云Clustar通过商用数据中心高性能的网络架构,赋能AI算法和单点计







!![[夸维智能]]

夸维智能是一家业内知名的AR现实增强初创公司, 面向教育和培训提供一整套AR解决方案,包括硬件、 软件和内容, 愿景是以增强现实和人工智能结合的前沿科技让每个人都可以拥有终生学习的好伙伴





!![[全悉科技]]

全悉科技是一家人工智能行为安全服务商。针对协助刑侦破案、预防犯罪、反恐及预防机密信息泄露以及监控资金动向等场景,为政府和企业提供服务,产品主要分为三部分,分别是数据收集系统、数据分析系统和数据展示平台





!![[中搜智联]]

利用移动互联网、物联网、大数据、云计算、人工智能的技术手段,建设生态和谐的智慧社区和城市。目前专注智慧家居、智慧教育、智慧医疗、智慧养老、生态农业、智慧物业等多方面研究







!![[度秘]]

由原度秘团队独立升级而成,全面负责百度对话式人工智能操作系统的DuerOS产品与技术创新,加速对话式人工智能领域的产品落地,是百度人工智能战略的重要组成部分。同年6月,度秘事业部在美国硅谷设立研发团队,











!![[易瞳科技]]

易瞳科技是一个智能硬件研发公司,致力于研发一款革新人类视觉感知的智能眼镜,它能将现实世界与虚拟世界完美融合,主打产品为基于介导现实(Mediated Reality)的智能眼镜“易瞳VMG”等





!![[品友互动]]

品友互动是一家数字广告技术服务提供商,为用户提供实时竞价广告(DSP)平台,依托实时竞价(RTB)架构和算法,提高数字广告产业链的效率和产能,并为用户提供数字广告定制服务













!![[上海雷跃]]

上海雷跃是一个智能健康硬件互动平台,用户包括年轻时尚的人群,老年人,小孩,孕妇,用户还可以用公司的硬件+APP+云后台服务开发他们自己的产品,隶属于上海雷跃智能科技有限公司











!![[红麦聚信]]

红麦聚信是一家互联网数据挖掘、数据处理及互联网技术研发机构,旗下拥有自主研发的网络舆情信息监测产品Unotice™

!![[量子智慧]]

量子智慧是一家人工智能影视公司,致力于以大数据和人工智能产品技术开发影视IP和影视产品,使用互联网、人工智能工具,提升影视产品的质量,将混合机器学习和编剧智能,创建故事训练数据集、集体创作影视产品,为客

!![[Medial EarlySign]]

Medial EarlySign是一家以机器学习为基础,致力于改善患者管理体验,提供非传染性疾病管理解决方案的以色列初创企业。Medial EarlySign的模型基于AI和机器学习,能分析电子健康记录中的数十个因素,包括实验室测试结果、人口统





!![[CaliberMind]]

CaliberMind是一家B2B智能营销技术研发商,利用AI和机器学习来帮助营销人员统一管理来自CRM(客户管理系统)、营销自动化工具、网站分析和其他第三方数据提供商的数据,寻找有用的信息并挖掘这些信息的价值

!![[Ever AI]]

Ever AI是一家面部识别人工智能平台,拥有一流的脸部识别技术,最全面,真实的数据集。迄今为止,该公司的面部识别模型已经在全世界范围内确认过上亿人的身份,而且全部都来自于移动消费群体



!![[华如科技]]

华如科技是一家以建模仿真为主业的公司。致力于军用仿真、虚拟现实和数据应用技术研发与产品推广。为各行业企业提供仿真产品、技术服务以及完整的解决方案

!![[华来智慧]]

华来智慧是一家人工智能领域的创业公司,致力于为企业客户提供人工智能方面的行业解决方案,改善客户办公效率

!![[Eyespage页码科技]]

Eyespage页码科技是一家大数据科技公司,致力于把大数据和人工智能融入到手机应用中,在人们不同的生活层面上提供帮助









!![[KeeKo]]

公司以“科学启蒙智慧” 为核心理念,致力于人工智能在教育领域的应用,为现代社会提供全新的“AI+”教 育方案。 公司将最新技术与基础教育特点相结合,首创低幼儿童能即可实操的实物编程方法









!![[南自股份]]

南自股份是一家集设计开发、产品研制、项目实施、系统集成服务于一体的高技术服务企业。坚持专注与价值链两大策略,经过多年的发展,目前已经成为宁波智慧城市综合服务提供商、智能建筑服务商、ICT运维服务商



!![[鑫汉源城]]

鑫汉源城是一家电子商务平台公司,专业打造智能应用平台,集轻巧灵于一体为用户提供便捷的服务与咨询,企业主要涉足于汽车领域内的技术研发、技术咨询、技术服务、计算机软硬件的研发及运用等领域







!![[都来玩科技]]

都来玩科技是一家研发、营销和服务为一体的教育型高科技技术企业,致力于中国的机器人教育、创客教育和STEM教育的创新发展,专注于机械电子制作,计算机编程,3D打印和人工智能等领域



!![[深极智能]]

深极智能是一家将人工智能运用于游戏领域的创业公司,致力于“用机器自动制作游戏”,目前正在打造游戏版的《西部世界》

!![[星迹科技]]

星迹科技专注于人工智能、智能家居、计算机系统产品开发和技术服务,目前专注于智能家居与人工智能结合的新产品研发

!![[深圳中光远科技]]

深圳中光远科技是一家物联网服务商,专注自动识别与数据采集技术(AIDC)在商超、快递、物流、金融、交通等行业的应用研发与系统集成。产品包括:条形码数据采集器、RFID数据采集器等

!![[同业云]]

同业云是提供同行业和关联行业间交互技术和服务的平台。主要服务于以银行间市场为主体的中国金融同业。平台设有资讯、业务、黄页和圈子四个板块,支持网页、微信和APP登录









!![[明据]]

上海明据科技是一家大数据人工智能科技服务公司,目前服务的客户是华晨宝马和一汽大众等中国汽车企业,主要做的工作是基于企业业务场景的数字化探索服务,利用并挖掘企业大数据的业务价值指导业务改善

!![[知路科技]]

知路科技是一家企业级智能物联网服务平台,致力于下一代网关设备的软件、硬件、云端服务开发,为各类形态的物联网、智能家居、商业wifi运营商,提供从网关设备到云端服务的全套解决方案,包括认证、网络行为控制

!![[云谱数据]]

云谱数据是一家从事物联网前沿技术设计、研发的企业,集生产、开发、解决方案为一体,产品包括物联网智能终端设备、数据传输及存储平台、数据自学习模型、定制式可视化安全管理平台及移动端App应用等

!![[方立科技]]

方立科技是一家致力于国密算法指纹识别设备的公司。拥有自主研发的指纹识别算法并通过公安部认证



!![[Serafim硕擎科技]]

Serafim硕擎科技是一家主打光学触控屏幕技术的公司,产品包括各类光学触控及手势控制互动产品,如Smart Laser、Shining Smart等





!![[云天励飞]]

云天励飞是一家人工智能领域的技术创新型企业





!![[盛视科技]]

盛视科技是一家智能化系集成商和智能化产品供应商,专注于人工智能,算法研究,智慧系统集成,同时,承担边检,海关,国检等联检单位系统的建设,致力于为用户提供更贴近实际需求和符合未来发展的整体解决方案





!![[Tinyfine]]

Tinyfine是一个提供海外游戏发行及人工智能推荐游戏的公司,对于有需求的公司,平台也提供移动营销服务和版权交易衍生服务,公司致力于为用户推荐更优质的游戏,为中小企业提供优质的海外发行推广服务







!![[亿栗科技]]

亿栗科技是一家人工智能广告优化平台。其业务范围包含面向全球市场的智能精准营销解决方案和服务,致力于以数据和技术为驱动帮助企业高效地提升广告转化和营销效果

























!![[汇智大有科技]]

汇智大有科技是一家软件技术开发服务提供商,平台专注于软件技术开发,基于独立开发人脸识别技术和智能终端系统,为校园、金融两个行业提供集成解决方案。公司总部位于北京,在石家庄、邢台等地均设有办事处。与远洋

!![[优锘科技]]

Uinnova是一家可视化管理软件和互联网服务提供商,为IT管理和物联网管理提供可视化能力,目前已经推出数据中心可视化系统、仓储可视化系统和数据中心3D设计互联网DIY服务。北京优锘科技有限公司旗下产品







!![[赋橙科技]]

赋橙科技是一家新零售餐饮服务平台,公司从传统的早餐领域入手,采用OMO模式对线上线下进行双向引流,并开创性的推出了“智能环保餐盒” 完成商业闭环,另外,公司推出的橙几盒食项目结合了互联网技术开发和智能硬件





!![[维康智慧物联]]

维康智慧物联是一家企业服务公司,专注于物联网系列产品研发、制造,依托自主研发的JITMES智能制造软件平台,运用工业物联网和智能设备集成等技术,为汽车、汽配、电子、电器、五金、机械、卫浴、纺织等离散型制造行业





!![[独到科技]]

独到科技是一个基于微博数据的分析服务商,通过详尽的可视化数据帮您洞悉微博传播相关数据,评估微博传播质量等





!![[星核软件]]

星核软件是一家创业公司,该公司致力于使用人工智能技术改造基础行业,主营业务包括软件开发;计算机系统服务;技术推广服务;企业管理咨询;企业策划;销售照相器材、电子产品、计算机、软件及辅助设备、通讯设备

!![[云平台]]

云平台是一家企业服务领域的公司。主要经营:儿童机器人培训,人工智能设备推广,知识产权申请服务,人力资源管理,新型农业生态系统等业务





!![[仁光科技]]

仁光科技是一家交互式大屏幕触控系统和智能化产品一站式解决方案提供商,产品广泛应用于军队、政府、公安、展览展示、教育、能源、企业等客户群体

!![[未来地图]]

未来地图是一家基于大数据算法的AI商业平台,我们致力于用人工智能超级算法和大数据,规模化地帮助企业家、创业者“做正确事+正确做事”]]











!![[远鉴科技]]

远鉴科技是一家专注于人工智能生物识别领域的公司,掌握人工智能与机器学习算法。在生物特征识别、多维身份认证领域,具备多年的服务经验与一站式服务能力。凭借声纹识别、人脸识别和OTP技术,满足不同应用场景对身份



!![[联盟速运]]

联盟速运是一家互联网物流智能平台,反向O2O模式,颠覆传统物流思维,重构物流经营模式,让物流与PC端、移动端完美融合,建设成为中国最大的物流网络交易平台







!![[方得智能]]

方得智能是一个对话式商业平台,以自有知识产权的自然语言理解和对话引擎为基础,向合作伙伴提供集合数据、服务和商业的一站式人工智能对话机器人,通过统一的运营平台建立完整、共赢的闭环生态系统

!![[云脑科技CloudBrain]]

云脑科技是一家跨越中美两地的人工智能行业解决方案公司,利用深度学习产品为传统行业服务、提升企业效率。云脑科技致力于将硅谷最前沿的人工智能、深度学习等研究成果引入中国,提供AI行业平台的产品及服务。

!![[欧拉融智]]

欧拉融智是穿戴式智能产品的销售商,集产品开发,销售,平台运营于一体,致力于以大学生为首的年轻受众,将现代科技与时尚结合,为用户提供硬软的全面使用体验,力求打造成年轻人认可的品牌







!![[木马计]]

成都木马计科技有限公司是一家致力于利用互联网大数据,发展人工智能产品的公司

!![[节点加科技]]

节点加科技是一家致力于提供物联网接入平台的企业,致力于帮助客户通过手机控制附近任何配置过的智能家电

!![[微动Vidoo]]

锋时互动提供前沿智能人机交互技术及相关系统解决方案,专注于非接触体感输入设备的研发、生产与推广,产品有智能人机交互平台“微动Vidoo”等





!![[仁盈科技]]

仁盈科技是一家专注于提供“智能产品”的国家高新技术企业,公司致力于智能终端硬件、系统软件、行业应用软件的整套解决方案服务,自主研发了针对行业应用的“环境语言交互模型”,并植入公司自主研发的服务型机器人

!![[巴巴云智]]

巴巴云智是一家集成产品设计、研发、生产、销售一体的智能产品企业。公司立足于智能产品领域并不断延伸产品种类,具备自主创新和独立解决整体方案的能力,已获得多项外观、使用新型、发明专利





!![[搜前途]]

搜前途是基于人工智能的人才大数据服务商,愿景是通过AI+人才大数据促进产业、教育、人才的融合,推动产业创新和转型升级











!![[LAWBBD数联惠法]]

LAWBBD是一家法律大数据公司。其致力于通过信息化的手段,对法律数据进行人工智能分析,为法律相关人员和公司提供智能辅助和决策支持

!![[Wipace微跑科技]]

Wipace微跑科技是一家青少年可穿戴体感游戏机研发商,该公司产品微跑小蛙,产品通过独创的专利识别算法辨识身体动作控制游戏,同时监测游戏过程中孩子们的运动量消耗



!![[乐联网]]

乐联网隶属于北京乐为物联科技有限责任公司,是一个物联网服务平台

!![[中科弘云]]

中科弘云是一家提供人工智能云计算解决方案的公司。由中国科学院计算技术研究所孵化的高技术创新企业,公司专注于人工智能领域软硬件平台关键技术研发及应用,面向政府、企业以及教育科研等行业用户,提供人工智能云







!![[魅瞳科技]]

魅瞳科技将全球人工智能的学术理念和工业界实战经验相结合,运用深度学习技术、自主知识产权的高速视觉算法、云计算大数据技术、结合人工智能视觉硬件加速设计,推出了人工智能视觉引擎,并拥有数十项发明专利







!![[上海班砖网络]]

上海班砖网络专注于研究人工智能在计算机视觉和听觉等领域的应用(偏大数据方向),是一家拥有人工智能作曲编曲技术的高科技企业





!![[易嘉财税]]

易嘉财税是一个基于人工智能的小微企业财税软件。通过无需雇佣专职会计、及时享受税收优惠政策,以及财税专家团队的支持,为小微企业降低财务部门成本,提供全新体验的业务和财税管理服务





!![[囧书网]]

囧书网是一家致力于使用大数据和人工智能解决语言学习的科技公司,着眼于新兴产业的需要,以大数据、人工智能为核心,精耕于语言学习领域的教育模式创新











!![[旷视科技Face++]]

北京旷视科技有限公司成立于 2011年10月,是中国领军的人工智能产品公司。旷视以深度学习和物联传感技术为核心,立足于自有原创深度学习算法引擎 Brain++,深耕金融安全,城市安防,手机 AR,商业物联,工业机器人五大核心

!![[峰杰股份]]

峰杰股份是一家设备及智能建筑系统集成服务商,主营业务是为政府、学校、医院及企事业单位提供信息系统集成方案和配套智能设备的软件研发。公司的主要产品或服务有教育软件类、云中心、系统集成、课室系列

!![[永洪科技]]

永洪科技是一家大数据服务和BI商业智能分析服务商,专业从事数据治理和数据价值发掘,旗下产品有Yonghong Z-Suite等。隶属于北京永洪商智科技有限公司



!![[GAIware概维智能]]

GAIware概维智能是一家大数据智能商业解决方案提供商,主打产品为通用AI商业增长系统GAIware、企业数据服务xDataware,帮助企业实现大数据到大价值的转变

!![[NNDeal]]

NNDeal是一家基于人工智能的商业地产选址服务平台,平台基于大数据进行选址服务,首先获取人群画像及目标房源,然后运用人工智能技术进行运营能力与品牌发展的预测,最后确定选址可以提升开店成功率

!![[南京芝麻科技]]

芝麻科技是国内领先的线下大数据服务公司,致力于线下消费者大数据的采集及精细数据分析,通过数据服务驱动商业效率的提升。是Wi-Fi感知设备并结合数据挖掘的领军者,芝麻科技拥有该项技术国家发明专利

!![[杭州筑美]]

杭州筑美杭州筑美是一家智能导示系统市场运用研发机构。该公司致力于科技与美学的创新应用,立足于视觉导示、信息智能化和美学传播的产品研发,从事行业公共信息应用与整合的市场研究,实现导示信息系统智能化。

!![[地易连接]]

地易连接是专门从事移动互联网产品和服务的科技公司,是集研发、销售、运营于一体的综合性互联网O2O服务型企业,是以互联网云技术和企业智能路由器为接入端口,建立起线下实体+线上店商+移动终端的商业模式

!![[安声科技]]

北京安声科技有限公司是国内专注三维空间声场主动降噪技术和产品开发的自有知识产权的解决方案提供商。









!![[衡昊数据]]

公司采用一流的机器学习和人工智能技术,助力企业研发新产品,为企业提供优质的人工智能和云计算服务。重点服务于通信、金融、旅游、政府、农业、交通、医疗等行业





!![[指天下]]

指天下是一家AI零售导购系统研发商,商家用户可以通过此系统分析购买者的购买行为数据,从而预测出购买者的偏好等,以使商家更好地囤货、管理库存、精准营销等。同时个人用户可以通过此公司的终端进行在线支付





!![[爱保护科技]]

爱保护科技是一家专注于智能硬件的创新型科技公司,集设计、生产、硬件、结构、APP为一体,致力于解决移动支付、运动健康、儿童老人关护等问题





!![[Lightelligence]]

致力于使用光子电路来加速人工智能计算的效率









!![[达芬奇DAvinci]]

达芬奇DAvinci是一家会议协作平台供应商,专注于设计和打造新一代高效的会议协作平台和office智能产品与解决方案,为协作而来,为高效而生,让办公智能、协作、高效,隶属于浙江锦锃智能科技有限公司





!![[军理科技]]

军理科技是一家人防智能化、信息化系统领域的服务商,专注从事人防工程设备自动化,通信自动化研究的高新技术开发型企业,致力于人防工程智能化的设计、施工及相关产品的生产与代理

!![[深之星synron]]

深之星synron是一家专注于智能自助产品及软件系统(KIOSK)的研发、设计、整合与分享,是商业系统解决方案提供商,隶属于深圳市深之星科技有限公司









!![[喻达智能]]

喻达智能是一家无线智慧产品和解决方案提供商,专注于智慧家庭、智慧酒店、智慧园区等领域,以物联网无线技术为核心,开发了能实现本地和远程控制的14大类超过50种智能家居产品















!![[天玛信息]]

天玛信息是一家手机产线自动化智能化服务商,公司集研发设计,生产,销售,服务于一体,专注于手机产线自动化智能化的技术研发。公司擅长手机产线的整体自动化优化及改造,通过设备及软件来改善包括加工,装配,测试







!![[速报]]

速报是一家基于AI人工智能的舆情监测系统,智能 AI







!![[探真]]

探真是一家商业智能平台,平台致力于以三大运营商近2亿移动端用户的行为大数据加智能数据挖掘,全景洞察中国互联网用户的行为模式,打造服务于移动互联网创业、投资及行业研究的SaaS服务平台。平台能从指定APP上线之日

!![[蓝芯科技]]

蓝芯科技主要研发移动平台感知和控制系统,及相关核心技术。提供移动平台感知和控制系统的软、硬件产品,及整体解决方案。让移动平台提供商,能基于我们的系统做出更加智能、功能更强大的产品







!![[智易科技]]

智易科技是一家具有海归背景的AI技术与服务提供商,通过打造一款独创式的一站式AI研发与应用云服务平台,帮助企业更加简单便捷地进行AI应用的开发与部署,低成本拥有人工智能,从而获得更大的商业价值





!![[锐丰智科]]

锐丰智科是一家灯光音响及舞台机械系统、同声传译可视化智能会议系统的策划、艺术创意设计及制作









!![[爱因互动]]

爱因互动是一家智能对话机器人开发商,基于人工智能的自动化对话服务,以最自然的交互,最快最好地连接你与客户



!![[闹米科技]]

闹米科技是一个关注电商数据的全方位监测、分析和智能系统,主打电商大数据智能分析系统,此前主要做互联网购物及导购网站,产品有闹米购物助手等





!![[允登科技]]

专注于数据中心运维管理领域的技术创新,基于人工智能,物联网和大数据方向的长期技术积累,为数据中心提供自主研发的智能运维机器人,基础设施管理软件及以核心算法为基础的智慧节能解决方案





!![[北科天绘]]

北科天绘是一家专注于激光三维成像技术和激光雷达产品的研制,激光雷达有机载、地面和车/船载三大系列产品,致力于打造智慧城市、山地测绘、三维街景等



!![[曲速未来]]

曲速未来是一家主要面向企业提供全方位的信息安全服务的公司,是一家集研发、销售、服务于一体的AI安全与IoT物联网安全技术提供商





!![[汉柏科技Opzoon]]

汉柏科技Opzoon是一家的云计算数据中心解决方案提供商,提供企业专属网络、行业专属云、云计算数据中心等领域内的综合解决方案





!![[广联智通]]

广联智通是一家集智能硬件、智能家居产品研发、生产和销售于一体的公司。致力于结合人工智能和物联网技术提供智能家居解决方案



!![[深绘智能]]

深绘智能是一家人工智能的视觉与数据服务商,致力于智能设计排版领域的研究与应用,将主观的设计需求通过人工智能实现在客观的技术层面,并且在设计排版的智能行为上制定独有的运算法则

!![[FEC筷云股份]]

深圳市筷云信息科技股份有限公司是中国领先的互联网+咨询、技术方案和云平台运营企业,以国际化的视野引领互联网+商业模式与技术创新,为全球客户提供专业互联网+解决方案。互联网技术涵盖:B2B、B2C、C2C、O2O、众筹

!![[网智天元]]

网智天元是一家大数据智能软件与服务供应商。致力于应用互联网智能技术,创造大数据价值。核心技术是互联网大数据智能处理,独创的网络智能机器人技术能基于PB级大数据、亿级用户画像与情感计算,实现全球互联网络群







!![[爱伙企业]]

爱伙企业是一家科技创新公司,拥有强大的IT研发团队,提供移动端安卓、IOS系统研发,针对中小企业产品销售难,自行研发出“移动指尖系列产品”,包括移动产品和智能物联产品





!![[精彩互联]]

精彩互联是一家创业型公司,通过移动互联网技术及智能硬件设备引领中国新兴行业变革,基于共享经济的理念,精彩互联将在人与智能设备的交互上通过技术创新经营,在“智能零售”领域发力

!![[未来互娱]]

未来互娱是一家AI技术研发商,隶属于深圳未来互娱科技有限公司

!![[艾尔思科技]]

艾尔思科技是一家人机交互软件技术研发公司,其产品可以根据用户喜爱或需要而制作出面向硬件的声件或感件



!![[益读科技]]

益读科技是一个线上创业孵化基地,专注于人工智能、智能 机器人技术研发和市场拓展,以优秀的原创文章提高国人的阅读率,鼓励阅读,吸引广大人群加入益读行列,通过原创公益阅读、孵化创业,形成公益善循环,让益读







!![[问鼎清云]]

问鼎清云是一家提供互联网信息服务的企业,致力于进行品牌经营,主要以服务器托管/主机托管、云计算、互联网服务和IDC国内国际宽带数据业务为主导,专注网络行业应用普及与开发,面向政府及企事业单位提供全方面的网





!![[Noitom诺亦腾]]

北京诺亦腾科技致力于动作姿态捕捉系统的研发,给用户提供全天候的动作姿态数字化平台,产品有trueMotion、mySwing挥杆宝等





!![[道易成]]

道易成是一家公共安全产品、系统解决方案供应商,专注于在信息化应用与人工智能设备技术等领域为公安业务部门和公共安全领域提供产品、系统解决方案,隶属于北京道易成人工智能技术有限公司





!![[Instana]]

推出了人工智能机器人、虚拟助手Stan,通过持续学习用户应用环境,预判问题,并提供建议。据悉,该公司在短短十个月时间里就获得了全球100家企业客户,包括奥迪、DriveNow、





!![[千里智能]]

千里智远是一家基于云计算大数据和人工智能技术,结合用户需求及用户体验设计和产品包装,为行业定制服务产品的公司,核心项目为一款旅游相关的服务应用,与国内旅行和汽车平台达成合作意向,在数据智能技术服务方面

!![[大有数据]]

提供基于深度学习打造的新一代计算机视觉理解和人工智能引擎,为企业级用户的智慧工厂提供解决方案,为传统制造产业创造“互联网+”新生态,为公共安全领域提供新的解决方案

!![[Linker领科云]]

Linker领科云平台是一家专注于移动业务生态的云服务平台,为客户提供混合云计算资源,并为移动业务服务的创建、部署、上线、运维提供一体化解决方案和开放的交易平台。宝蕴灵科(北京)网络科技有限公司旗下产品

!![[眼神科技]]

眼神科技是一家生物识别技术开发和应用研发商,开发了生物识别技术包括指纹、人脸和虹膜识别技术,通过将大数据与生物识别技术结合,致力于解决人工智能领域中的人机交互问题



!![[享控科技]]

享控科技公司倾力打造的电子人物联网是一个物联网应用服务共享平台,专注于物联网技术与人工智能挖掘整合并应用于企业,助力企业向服务型制造企业转变





!![[上博智像]]

上博智像是一家硬件研发制造企业。主要从事红外热像仪、计算机视觉模块、智能光电载荷、 伺服稳像产品的研发、生产及相关服务

!![[二维碳素]]

二维碳素是一家从事大面积石墨烯薄膜及石墨烯触控模组的研发、制造高科技上市企业。开发了石墨烯发热膜系列产品,在家用取暖、中医理疗、医疗加热、工业精确分区温度管理等方面应用广泛

!![[追灿数据]]

致力于通过数据挖掘,人工智能等前沿信息技术,引领企业智能商业决策。追灿数据自主研发的决策狗消费大数据决策分析平台,为企业提供细分市场预测,产品潮流预测,消费者洞察等服务







!![[旗瀚科技]]

旗瀚科技是一家集团化科技企业,拥有Sanbot、Donkey、Qihan和旗瀚云四个主要产品,主要业务有自动化控制、人工智能技术、云平台服务以及定制化开发设计等

!![[无锡聚云科技ClearClouds]]

无锡聚云科技ClearClouds是一家提供数据中心实时性能监测及分析设备的技术公司,提供基于网络的数据收集和分析平台,可以实现大型数据中心的智能管理,极大地削减他们的运营成本并增加营收



!![[米果企服]]

米果企服是一家企业智能化财务软件研发商,致力于“让企业主专注于自己的创作”,通过技术创新、营销创新,大幅降低小微企业代账成本,为中小企业提供一站式、智能化的财税SaaS服务解决方案





!![[深醒科技]]

深醒科技是是一家从事人工智能方向,集研发、生产和销售为一体的高科技公司,以人脸识别技术切入AI战场,致力打造科技安防、智慧金融、智能交通、平安校园、平安小区等智能综合解决方案





!![[广东拓迪智]]

拓迪智是一家一直从事图书馆管理软件研发以及基于RFID电子标签技术研发制造的企业,提供图书馆RFID系统整体解决方案,致力于推动图书馆智能化发展工作,为推动图书馆智能化建设做出了自己的贡献

!![[亿维股份]]

一家智能技术融合行业应用方案提供商,致力于将人工智能、机器视觉、智能分析、互联网、大数据、移动互联等技术整合应用到各领域,为行业管理提供整体解决方案,业务涉及智能交通、智慧城市、数字医疗等内容







!![[经邦大数据]]

经邦大数据是一家企业大数据分析公司。致力于基于人工智能技术德企业智能经营决策支持系统软件德研究、应用与开发。 打造可以最大化地发挥高层了解、领导和控制公司业务的管理驾驶舱





!![[福萝]]

福萝是一家时尚消费级智能设备服务商,专注于将人工智能放入低能耗的电子设备,核心成员曾经在微软,Twitter等公司任职







!![[Influential]]

Influential是一家网红市场智能营销服务提供商,致力于通过人工智能技术来帮助品牌商和营销人员找到与公司契合的网红艺人。旗下推出的产品Talent Pro还可以帮助代理商获得广泛的人才库社交数据





!![[云角信息]]

云角信息YunGoal是云计算软件和服务提供商,专注于公有云和混合云平台的迁移、运维和软件开发,其自主开发的云舶平台能够提供跨各种公有云和私有云的监控、计费和资源管理的SaaS服务,其它产品包括云管理系统YunBoard云博







!![[Mammoth Biosciences]]

Mammoth Biosciences是一个美国智能诊断服务平台,用户通过上传样本和照片,就能在三十分钟内获得诊断结果,通过CRISPR技术,引导CRISPR蛋白搜索任何特定的DNA或RNA序列,为用户提供疾病诊断服务







!![[Qindom]]

Qindom是一家量子智能技术研究与应用服务商,致力于在通过量子计算技术优化底层算法及模型,提供可持续的量子智能解决方案和行业标准,实现量子智能在各个行业的落地应用

!![[Bibblio]]

Bibblio是一家内容智能推荐服务商,利用机器学习,Bibblio 公司提供“即插即用”的网页及App免广告内容推荐功能,让用户看到最有价值的内容



!![[凡云科技]]

凡云科技是一家劳动工具智能服务商,隶属于北京凡云科技有限责任公司





!![[CounterFlow AI]]

CounterFlow AI公司是弗吉尼亚州的一家公司,为世界级的安全操作中心(SOC)设计和构建网络威胁解决方案。公司正在利用机器学习和感应技术优化网络威胁查找流程,以达到实时响应。CounterFlow AI的旗舰产品Dragonfly Threat Sensor







!![[InsightFinder]]

InsightFinder是一家美国的云计算智能分析引擎供应商



!![[Gravyty]]

Gravyty是一个智能预测分析平台,通过运用人工智能和机器学习技术,将私人数据与大量公共数据相结合进行分析,帮助非营利组织筹集更多资金,降低人力成本,提高效率



!![[光格]]

光格是一家专注新一代光电传感网络及综合监控系统的研发、生产、销售和服务的综合型公司,其产品包括温度、应力应变、及环保和碳排放监测等光纤传感网络系统





!![[天地云箱]]

天地云箱,一个云计算基础设施及系统供应商,致力于下一代绿色数据中心的设计、开发与生产,提供云计算软、硬件系统的研发和集成服务。产品有云箱、云监控系统等



!![[远辽科技]]

远辽科技是一家数据难题解决方案供应商,同时公司是一家领先的数据技术公司,致力于解决客户面临的最大数据难题,从数据抓取、分析到行动,完成企业数据应用闭环。公司独特的企业级解决方案是一个智能且实时的客户数





!![[极智汇]]

极智汇是一家从事人工智能和大数据的公司,致力于以选择移动智能广告/移动智能营销系统作为出发点,通过大数据分析、机器学习和人工智能等先进技术,跨界整合各种资源,不断优化各行业厂商连接用户的方式,重构现有





!![[微迅]]

微迅联创是一家立志做从事与互联网与智能化的科技公司,专注于机器人、智能餐饮、智慧农业、工业4.0、旅游、人力资源等领域,向企业与创业者提供战略咨询、技术孵化与互联网+解决方案产品与服务,拥有具备自主知识产权









!![[第三眼科技]]

第三眼科技是一家智眼系统解决方案供应商,以人工智能、图像识别、大数据及压缩算法为核心技术体系的智眼系统,应用于金融,制造业,快消,房地产等行业,拥有低成本,高效率的特点

!![[聚微]]

聚微是一家集软件开发与销售一体的高新技术企业,是业内技术领先的软件产品提供商,公司的统一智能业务建模平台iBizSysPlatform颠覆了现代软件开发模式,解决了软件生产过程中业务与技术分离的难题

!![[薪社通]]

人力资源管理效率的人力资源服务云,主要是使用saas,人工智能,大数据分析等先进技术实现了在微信端、 web端、移动端,缴纳社保、商业保险、代发工资,减少公司人力成本









!![[乐点移动广告平台]]

乐点移动广告平台是一家移动广告平台开发商,乐点自主研发的智能精准投放与广告管理系统,集广告创意制作、广告发布、统计系统为一体。为客户提供移动时代的全案营销服务。采用先进的算法可以使广告实现精准匹配和自

!![[思涵科技]]

思涵科技是一家AI+课堂教育服务商,专注于AI+课堂教育领域,提供从课堂教学资源采集、信息处理、诊断分析、可视化呈现和资源使用的整体应用解决方案,构建智能、快速、全面的教育分析系统,实现教学、管理、资源建设和

!![[星尘数据]]

星尘数据是一家为机器学习训练提供数据标注服务的公司,旗下平台“stardust”通过“准入考核”、“动态测量”、“动态发题”和“人机结合”等标注方法,为人工智能企业提供人工智能数据众包服务





!![[Zerone]]

超鼎科技专注于深度学习和数据智能,由美国硅谷资深专家回国创办。公司提倡“be hero”的行为准则,打造小而强的全英雄团队





!![[才云科技]]

才云科技Caicloud是一家在Container技术基础上构建企业级容器集群云平台的云计算创业公司,服务于企业以及个人开发者,打造基于Docker的企业PaaS服务商

!![[软库科技]]

物联网生态平台,集结国内最前沿的IOT(物联网)与AI(人工智能)技术,公司通过物联网和人工智能技术,连接城市的每个能源节点,构建“AI大脑”,实时反馈人与设备、设备与设备间的信息交互。同时利用物联网技术让城





!![[AI华捷艾米]]

北京华捷艾米科技有限公司致力于人工智能和体感互动产品研发和市场销售。其产品是人机交互的基础性设备和技术方案,应用方向极广,包括:PC,电视,平板电脑,手机,机顶盒,机器人,安防监控,汽车,电子商务和娱乐



!![[国芯云科技]]

国芯云科技是中科招商集团旗下控股子公司,长期致力于“云计算”领域的研究与探索。公司以提供用户先进、安全、完美的云服务应用体验为目标,打造全面、成熟的云计算平台综合解决方案





!![[生活圈科技]]

生活圈科技是一家应用开发服务提供商,致力于移动互联网商用开发与服务等领域,公司拥有优秀的数字化智能化系统开发、工程应用等产品项目研发经验,是国内首批微信商用领域的专业应用开发研制与服务提供商





!![[科葩]]

科葩是一家专注于人脸识别技术与产品的研发、设计、生产、销售和服务于一体的综合性企业,致力于人脸识别技术在社会经济生活中的全方位应用

!![[柠檬数据]]

柠檬数据是一家大数据、第三方数据管理(DMP)服务商,目前主打独立公共标签供应商,产品有柠聚标签模型图、柠智可视化数据等。上海柠盟数据技术有限公司旗下产品





!![[阿普奇]]

阿普奇是一家致力于为行业用户提供具有智慧和行为能力的专用设备解决方案的服务商,旗下主要包含智能计算机、智能光学系统和国产自主系统三大产品领域,主要面向国防军工领域和国防军工领域







!![[镭神智能]]

深圳市镭神智能系统有限公司是一家面向全球提供激光雷达解决方案的公司,核心业务是激光雷达相关硬件和软件产品的研发和生产





!![[超算云]]

超算科技是一家云计算公司,专注于云计算和大数据领域,主要产品有超算云和Q貂智能路由器。利用云计算和大数据,通过硬件和网络虚拟化等技术,提供可量化交付的一站式综合应用服务平台





















!![[中科创达]]

Thundersoft中科创达是一家智能终端平台技术提供商,是Android核心技术和整体解决方案提供商]]





!![[安维思]]

安维思电子科技有限公司是一个安防整体解决方案供应商,致力于数字视频的智能化处理和深度应用,实现智能安防与业务系统的平滑整合,提供全线的数字监控产品





!![[枫芒科技]]

枫芒科技致力于通过物联网技术帮助线下商业洞察用户行为,提升商业智能竞争力

!![[MITAC]]

MITAC是一家创新研发与服务提供商和企业云服务提供商,致力于 IT 软硬件产品研发、设计、应用与整合,已形成智慧农业(农业物联网)等智能服务体系,隶属于宇达电脑(上海)有限公司





!![[大数据魔镜]]

大数据魔镜是一个大数据可视化分析工具,为企业提供数据可视化、分析、挖掘的整套解决方案及技术支持,苏州国云数据科技有限公司旗下产品



!![[天壤智能]]

天壤智能是一个人工智能服务平台,致力于为个性化营销、游戏、机器人等领域提供人工智能解决方案。 目前主要利用人工智能技术帮中小企业解决营销问题,公司基于当前中小企业的营销痛点,通过运用人工智能的核心技术

!![[云舞科技]]

云舞科技是一家致力于虚拟现实领域探索的公司。主张价值及技术实现,用专业的方法推动虚拟现实产业化。满足用户数字化虚拟现实的业务需求,并帮助他们更轻松地解决问题和实现目标。用全新的推广方式来重塑他们的行业





!![[东方网力]]

东方网力是一家安防服务企业,以大数据、云计算、智能分析等技术为核心,产品覆盖科信、刑侦、安监、教育、金融、能源、轨道交通、智能交通、智能建筑和家庭安防等多个行业







!![[中德宏泰]]

中德宏泰是一家网络身份服务机构。该公司集云计算、大数据+城市管理、互联网安防服务外包、相关软硬件产品研发生产销售于一体,推出有深度神经网络人工智能算法、人脸识别对比服务器等一系列安全防范软硬件产品

!![[阿果科技]]

杭州阿果科技有限公司是一家人工智能和大数据领域的创业公司,致力于通过大数据挖掘处理和机器学习为用户提供个性化推荐搜索服务



!![[CloudIn云英]]

CloudIn云英是一家云计算公司,为创客和行业客户提供IaaS+PaaS的云计算服务,北京云英传奇技术有限公司旗下产品



!![[唯酷光电]]

唯酷光电是一家健康环保型大尺寸液晶黑板研发生产商,公司是一家集智能手写板产品研发、生产、销售、方案服务于一体的专业科技公司,同时也是国际领先的液晶膜及智能显示方案的优秀供应商,致力于为现代化办公和教育





!![[大横琴科技]]

通过大数据、云计算、物联网、移动互联网和人工智能等前沿技术,为信息化、通信、安防和基建等领域的企业提供服务





!![[零秒回声云]]

EchoCloud回声云是一家智能对话交互平台,回声云将对话式交互AI技术的开发及应用。通过提供非常强大,可灵活配置,且响应极其快速的智能交互平台将语意理解、知识图谱、云端记忆等对话交互所需要的AI技术,轻松赋予产品





!![[亚马逊AWS]]

亚马逊AWS是一个企业服务平台,致力于提供云计算、存储、数据库、分析、应用和部署服务等。隶属于亚马逊通技术服务(北京)有限公司

!![[华德安]]

华德安是一家智能移动警务系统服务商,致力于依托云存储和大数据处理技术,为公安,检查,司法和法院等机关提供智能化和网络化的移动执法系统产品



!![[云势网络]]

广泛关注和招募应用数学、人工智能等领域专家,并持续鼓励和支持团队的科研工作和成果转化







!![[上海欧网]]

上海欧网是一家专业提供互联网数据托管服务的国家高新技术企业。公司主要业务包含SaaS、云计算、CDN等多种数据管理服务





!![[量知数据]]

量知数据是一家专注于大数据认知计算与商业智能服务的技术型科技公司,面向企业智能、金融科技、智慧城市等领域提供行业解决方案





!![[利夫乐科技小R]]

小R是一个智能决策助理工具,基于人工智能,提供场景化撮合及基于兴趣的服务决策。北京利夫乐科技有限公司旗下产品





!![[杭州魔点科技]]

魔点科技是一家从事人工智能创新性研究、将先进的人工智能技术与行业应用相结合的科技型企业,公司实现了人脸识别智能硬件终端产品化,推出以人脸识别技术应用为核心的各行业系统解决方案,在办公楼宇、政务、教育

!![[一面数据]]

一面数据是一家从事数据沉淀、处理、整合、理解,以及可视化工作的公司,旗下拥有服务于消费类品牌的类数据服务SaaS产品云雀。隶属于深圳市一面网络技术有限公司

!![[美林数据]]

美林数据是一家专注于提供数据分析、数据挖掘和数据可视化相关产品及技术服务的公司,处于大数据产业链的核心环节,其中大数据产业链主要包括数据采集、数据存储、数据管理、数据分析、数据挖掘和数据可视化等



!![[科博瑞]]

科博瑞是一家互联网科技企业,致力于为用户提供互联网+智能用电服务,以及提供个性化的互联网产品研发、运营、咨询等创新型服务

!![[天创微波]]

微波技术是一家定位于为国内各类军用电子整机提供各种功能的射频、微波模块、组件、分机等产品,由一群军工微波资深人士发起并成立

!![[高第]]

ACRCloud是一家声纹识别技术研发商,先后研发了音乐识别、哼唱识别、直播互动触发、点播视频识别等多项自动识别服务,为各大互联网运营商、广电合作伙伴提供内容识别平台

!![[中金智汇]]

中金智汇科技有限责任公司成立于2017年10月,为国内领先的数据中心外包与IT增值服务提供商中金数据系统有限公司下属子公司,其前身为中金数据原大数据事业部。中金智汇专注于为广大企业级用户提供高附加值、高水平体验

!![[东方生态]]

东方生态是一家提供生态环境相关智能硬件产品及大数据服务的互联网的公司,通过云智能传感器对生态环境状况进行数字化处理、分析和传输,并将生态智能硬件、生态大数据、智能灌溉服务确定为公司的新业务

!![[21vianet]]

第三方的互联网基础设施服务提供商,是一家第三方的互联网基础设施服务提供商,向客户提供业界领先的服务器及网络设备托管服务、管理式网络服务、内容分发网络服务及云计算服务

!![[虹识技术]]

虹识技术是一家虹膜生物识别核心技术及相关产品开发商,提供基于生物识别的安全认证服务



!![[禾赛科技]]

聚集了光学、精密机械、电子、通信、人工智能等前沿行业的顶尖专家,毕业院校包括斯坦福大学、MIT、伊利诺伊大学香槟分校、清华大学等,曾经就职机构包括苹果、三星、华为、宝马、德尔福、德国大陆集







!![[天云大数据]]

天云大数据BeagleData是一家大数据技术服务商,产品有大数据分布式集群存储系统BDS、大数据加速器BDA等,隶属于天云融创数据科技(北京)有限公司





!![[希云cSphere]]

云栈科技是一家专注Docker的云计算公司,旗下有企业级Docker管理平台“希云cSphere”等



!![[数聚互通]]

数聚互通是一家国内综合运用人工智能+大数据技术的创新科技型广告公司,同时也是一家全数字营销技术服务商,致力于将广告4A模式程序化和标准化,构建出一套完整的营销生态系统,并为汽车教育、旅游、消费品以及金融等



!![[巧布施]]

巧布施是一家新型群控营销系统服务商,主要提供巧布施营销手机,从而实现智能匹配,实现了独立营销、集中的对话、智能模拟等功能,大大的提高了微信营销的操作











!![[优思]]

优思科技是一家从事高新数字化信息技术服务的初创企业和解决方案提供商,致力于打造基于大数据和人工智能技术的行业应用整体解决方案











!![[融数云途]]

融数云途是一家企业级智能决策软件服务商,基于人工智能为企业提供营销工具。 旗下的 Fusio.ai CDC 提供强大的AI引擎来支持用户决策中心,实现全渠道智能连接,实时决策和最优行动。 其产品解决方案助力企业运营数据资产,





!![[奥松机器人]]

公司自成立以来,始终以推动中国机器人创新教育为宗旨。公司旗下拥有独立的电子商务中英文官网、京东商城、天猫商城、淘宝旗舰店、亚马逊商城,可实现用户自由选购的全新体验。

!![[海鑫科金]]

海鑫科金是一家专业的识别技术与智能系统综合解决方案提供商,专注于向社会公共安全领域提供基于识别技术、智能监控技术的产品和服务。并汇聚国际领先的指纹、掌纹、人脸、DNA、足迹、笔迹、车牌识别和行为分析等技术



!![[北京一流科技]]

北京一流科技是一家企业服务领域的公司,致力于将机器学习、深度学习技术应用到各种不同的场景之中以达到提升效率的目的











!![[百获]]

百获基于大数据销售线索和人工智能潜客挖掘的综合服务提供商,致力于帮助B2B企业营销中挖掘精准、优质的潜在客户,提高销售团队工作效率





!![[幻方量化]]

幻方量化是一家量化对冲基金公司。公司依靠数学与计算机科学开发了行情、交易、研究、回测和风控系统,使用深度学习等人工智能科学优化传统量化策略研究方法,帮助用户进行合理的基金对冲服务





!![[Syscloud犀思云计算]]

犀思云计算是一家致力于在计算与联网、存储与分发两大领域,为用户提供业界领先的云计算解决方案的公司,面向企业提供云交换网络服务,目前犀思云交换在国内已与阿里云、腾讯云、金山云等主流云服务商完成互联,并积





!![[阳鲲信息]]

阳鲲信息是一家云计算领域的服务公司,包括云运维服和云集成服务,有自建的云计算中心,也是微软,AWS,IBM softlayer,阿里云等大型公有云厂商的云服务合作伙伴

!![[智慧星光]]

智慧星光是一家文本大数据服务商。致力于成为大数据价值挖掘和精准化信息服务平台。为客户提供精准的信息和有价值的数据,实现信息有效对称和数据价值最大化





!![[DKVISION量子视觉]]

量子视觉Dvision致力于打造下一代虚拟现实的完整解决方案。采用最先进的计算机视觉技术,将软件、硬件以及工业设计进行高效整合,为用户打造电影级别的虚拟现实体验





!![[麦伦科技]]

麦伦科技是一家专注于通用人工智能、计算机视觉和大数据的高科技公司,是人工智能、大数据技术研发和解决方案提供商,致力于通用人工智能(AGI -Artificial General Intelligence)、深度学习(Deep Learning)、大数据(Big Data)及智能硬件的





!![[趋恒]]

趋恒是是一家专注于建筑行业信息技术的企业,旗下产品施小包CRP建筑工地专用管理系统运用现有的科技,通过物联、人工智能的方式,来帮助建筑企业提升管理,加强风险控制,提高效率,降低成本





!![[中科博宏]]

中科博宏是一家软件研发公司。以生物识别及人工智能为主要研究方向,为用户提供咨询、设计、开发、实施、集成、培训及售后等一条龙整体服务





!![[大鹊科技]]

大鹊科技是一家AI店铺商业场景服务平台,专注于实现店铺实时运营管控、会员用户画像、潜在客户挖掘、定向精准营销,致力于帮助客户解决AI商业服务场景落地问题,隶属于深圳大鹊科技有限公司





!![[桃树科技]]

桃树数据是一家AI建模工具与数据智能解决方案提供商,通过AI建模工具能够将原始复杂数据转化为机器学习算法可以直接使用的建模数据,并将算法翻译为人能理解的决策信息,主要为用户提供精准营销、全信用生命周期风险



!![[联点数据]]

联点数据是一家致力于是中国农业信息化发展公司。

拥有物联网技术、大数据分析能力、移动端应用及自有云平台等开发能力。

致力于物联网技术与智慧农业的有机结合





!![[有米广告]]

有米传媒是一家移动广告综合服务商,业务包括国内广告平台“有米广告”、海外广告平台“Adxmi”以及社会化媒体营销平台“米汇”。隶属于有米科技股份有限公司











!![[踪履]]

踪履科技提供软件工程师面试的工具,包括在线测试和协同面试两方面功能





!![[昱石网络科技]]

公司是一家企业服务提供商。主要提供企业服务提供商、自定义工作流、大数据和人工智能





!![[悟言科技]]

悟言科技是一个社交服务平台,平台通过互联网,提供陌生人社交服务,致力于通过移动互联网、大数据、人工智能等技术,为人们提供全新的线上社交体验。隶属于北京悟言科技有限公司





!![[互云网络科技]]

互云网络科技是一家技术公司,专注于人工智能OCR、大数据技术、企业级信息服务。旗下自主研发产品:互云脉片App,一款以名片收纳管理为底层功能、结合社交属性的企业商务信息管理工具







!![[他们的游戏]]

他们的游戏是一家内容分发平台,隶属于深圳市微众空间科技有限公司,公司致力于跨终端、跨平台的内容分发领域,智能贴心的操作体验,最多最安全可靠的资源让其成为亿万用户的共同选择,也是中国移动互联网领域的创新





!![[优零科技]]

优零科技是一家AI落地应用研发商,致力于将AI公司的人工智能产品落地为普通用户可以直接使用的客户端产品,旗下产品包括白描、西江月、I律师、天天成语等

!![[势必可赢]]

Speakin势必可赢是一家声纹识别与身份安全解决方案提供商,主要面向公共安全、金融、社保、智能硬件等行业领域提供声纹识别与身份安全解决方案







!![[织语CCwork]]

上海织语是一家消息驱动型工作协同门户平台,致力于为政府和中大型企业提供以即时通讯为基础,基于人工智能会话界面的智能协作平台。隶属于上海织语网络科技有限公司







!![[虎鲸跳跃]]

北京虎鲸跳跃科技有限公司,通过AI赋能销售,提高销售效率和转化率。通过持续的创新、不断的突破,致力于发展全球业务,成为智能商务领域最专业的AI公司。 虎鲸科技通过算法技术的不断创新,大数据的持续积累,持续为







!![[优豚]]

优豚是一家解决方案公司,利用物联网核心技术整合供应链管理系统,帮助客户实现价格稳定、业务增长、质量管控、改善运营绩效、并优化供应链管理系统]]











!![[Yosemei]]

Yosemei是一家智能公司。主要关于产品安全、云计算、网络流量和工业网络。隶属于苏州优圣美智能系统有限公司





!![[Geohey极海]]

Geohey极海是一家提供地理位置相关SaaS服务的一站式解决方案服务商,通过移动轻应用、地理数据、API与SDK帮助用户使用和开发和地理相关的应用,北京极海纵横信息技术有限公司旗下产品





!![[芒客科技]]

芒客科技是一家涉及导购分享,电子商务,即时通讯,人工智能,空气动力,材料科学,生物科学等多领域的一家综合性科技公司。现有返利网一家,科研项目四个,专兼职科学家数位





!![[奥法科技]]

奥法打造全场景的人工智能服务,以AI助力企业服务升级





!![[图籍数据科技]]

图籍数据科技是一个基于大数据和消费者行为预测的人工智能社交O2O平台。 我们集人工智能、社交、和购物于一身。我们的消费者行为算法能显著地提高精准投放效果。我们有一个独特的商业模式。









!![[数据米铺]]

DataMip(数据米铺)是一家基于大数据的智能营销自动化解决方案提供商,专为电子商务业务数据分析打造,关注消费者流失分析,强调买家购物行为及消费能力分解。数营米谱(上海)网络科技有限公司旗下产品





!![[YeeJay悦智捷]]

YeeJay悦智捷是一家移动互联网教育服务商,主要的业务为基于人工智能及多媒体技术的中文分级阅读移动互联网解决方案。公司创始人团队来自于教育行业、图书出版行业、及腾讯、百度、小米等互联网公司





!![[索信达]]

索信达是一家数据转化服务企业,为金融、互联网、制造、政府、航空等多个行业领域的大型企业提供大数据技术平台搭建、数据采集与同步、数据清洗、数据建模、挖掘与分析、数据可视化、数据管理和数据应用等全面综合解





!![[ADHUB钧云科技]]

ADHUB 钧云科技是国内领先的数据智能应用服务商,通过全面实时的用户行为数据挖掘,赋予企业极速、精准的用户洞察及业务驱动能力,改变传统营销、变现及销售方式,为企业及媒体提供基础的软件系统搭建和自由的在线交易





!![[热搜网络]]

热搜网络是一家专注于用机器人智脑帮助企业解决人力困扰的公司,致力于网络产品开发、销售及服务等业务,专业从事人工智能、网站系统、CRM系统、ERP系统开发相关服务







!![[优能控股]]

优能控股是一家致力于以科技产品服务人类社会的公司,拥有先进的专业技术和丰富的制造经验。 公司主要开发、设计:各种香薰雾化器、收纳袋、精密仪器等





!![[深知科技]]

深知科技是一家营销自动化服务商,致力于用人工智能技术实现企业市场营销多个环节的自动化、智能化决策,辅助企业提升营销效率和提高收入









!![[Trustdata麒麟心通]]

Trustdata是一家移动应用数据解决方案提供商,基于移动端数据监测,为客户提供各领域专业的数据产品、咨询等服务。旗下有TrustApp第三方移动APP数据监测系统、TrustEstate地产大数据系统、TrustTravel智慧景区分析系统等产品





!![[济中节能]]

.在线采集用能设备的能耗、运营和控制信息等数据,运用人工智能专家系统、在线数据挖掘和预测、数据建模、自动错误侦测和诊断、优化控制等技术,对相关数据进行分析,寻找能耗漏洞,提出并实施优化措施,实现对能耗的







!![[大鱼优品]]

大鱼优品是一个全网搜素推荐电商工具,致力于将人工智能技术应用于在线购物行业,智能连接电商,让消费者以最直观的消费体验获得最理想的消费结果。实现消费者购物体验的移动化、个性化、社交化。北京深湾科技有限公





!![[博虎科技]]

博虎科技是一家专注研发人工智能黑科技的研发型企业。核心产品“感知i家”系列产品,包含全套健康监护和智能家居相关产品,通过传感器、物联网技术实现对家电的全自动控制,以及对危险和灾害的预警和报警功能



!![[华安股份]]

华安股份是国家级高新技术企业和双软认证企业,设有国家级博士后科研工作站和国家火炬计划示范基地,公司专注于IT信息化、智能化领域,围绕信息化、智能化为主要科研方向,自主研发了一系列软硬件产品

!![[泽塔云]]

ZETTAKIT领航盛辉是一家超融合云计算服务提供商,旗下有ZETTAKIT超融合云计算一体机、ZETTAKIT云计算平台、ZETTAKIT融合存储系统等自主知识产权的云技术产品,为政府、教育行业、大型企业提供卓越的产品应用和技术服务

!![[中基凌云]]

为大数据运营服务重点,融合大数据、物联网和人工智能等技术,为客户提供互联网级的创造性解决方案

!![[邦芯物联网]]

邦芯物联网是一家物联网应用算法服务商,利用物联网、大数据、云计算以及人工智能等技术,提供地下管网智能化等解决方案





!![[深度智耀]]

通过大数据技术,致力于利用人工智能技术赋能新药临床开发与申报全流程,为用户提供临床试验方案自动设计与撰写、临床试验全周期文档自动撰写、新药申报资料自动化系统等产品









!![[Breakingpoit]]

Breakingpoit是一个提供云计算解决方案的公司,提供各种软件服务,包括移动解决方案,让客户享受云应用程序的优势,同时也提供所有领域的专业咨询和解决方案]]





!![[DNSii]]

DNSii是一个以DNS基础业务系统和安全系统开发、技术支持服务为主的公司,为各运营商、企业以及个人提供DNS解决方案,隶属于上海寰雷信息技术有限公司



!![[亿猫]]

亿猫信息是一个基于核心专利移动智能购物收银系统的互联网超市的整体解决方案项目,以帮助超市大幅降低人工成本、提升效率及消费者超市购物不排队等来打造线下超市第三方电商









!![[微运赢]]

微运赢是一家移动互联网服务商,专注于微信公众号的人工智能运营平台和小程序的场景解决方案服务,旗下的微运赢是一个基于微信公众号的人工智能运营平台,场景录是一个基于小程序的场景解决方案服务平台











!![[凯龙高科]]

凯龙高科是一家集研发、生产、销售和售后服务为一体的高新技术企业,自主设计建造了载体催化剂涂覆流水线、蜂窝陶瓷载体生产流水线、尿素喷射泵装配流水线、喷射控制器(DCU)流水线、及催化器封装等多条流水线





!![[乐活农业]]

乐活农业是一家从事企业服务的互联网公司。公司专注于软件开发、电商服务、移动互联网、物联网和供应链管理等业务,目前公司的主要业务是线上平台的建设以及线下渠道的整合拓展







!![[中软信]]

北京中软信科技有限公司是一家具有国资背景,清华同方参股的高科技企业,专注于身份证云识别与人生物特征识别的人证合一实名认证体系,着力解决远程认证这个困绕诚信体系与网络安全的核心难点问题。拥有身份证云识别





!![[云相科技]]

云相科技是一家专注于社会化媒体大数据的监测分析、挖掘、预测及可视化,帮助政府、企业利用大数据进行服务创新。目前已为超过310家客户提供产品和服务





!![[新华智云]]

新华智云是一家服务于内容生产者的企业。致力于通过大数据及人工智能技术,为内容生产者提供涉及内容采集、编辑、存储、分发等全生产链的专有技术

!![[虹星科技]]

虹星科技是一家远距离虹膜识别技术研发商,自主研发了一款商业化远距离虹膜识别产品,批量产品系列的识别距离达0.8-1.2米,为传统虹膜识别距离的4倍。对外提供的产品主要包括标准版设备S200、旗舰版设备S200P、闸机S200G、

!![[致美云想]]

以“数字指导营销”为核心理念,通过数据挖掘、人工智能等技术实现用效果跟踪数据来指导广告投放行为,致力于为客户提供全面个性化的整合营销推广服务,帮助客户建立整合营销能力和评估体系



!![[智峰时代]]

智峰时代是一家致力于人工智能、智能科技、互联网+等科技事业的公司。专注于提供智能家居、车联网以及移动互联网等智能化的解决方案、产品、服务

!![[CELLA]]

CELLA是一家帮助企业级客户快速链接AI人工智能服务的平台,通过接入Bind.ai 的AI-aaS技术平台,企业级客户能快速链接适宜的AI技术,完成从底层技术到产品业务的一站式接入,从而极大程度的降低企业接入AI技术的难度与成本,

!![[瑞狮网络]]

瑞狮网络是一家人工智能公司,基于领先的广告行业和机器学习领域的经验,提出销售预测模型,为电商、游戏、汽车行业客户提供精准数据分析和投放服务。目前已与多家500强企业建立合作

!![[Eyespage页码]]

Eyespage页码是一家将大数据和人工智能融入到手机应用中的公司。公司跨国家经营,跨地区流动,和对开源项目的追求。隶属于页码(北京)科技有限公司

!![[华傲数据]]

华傲数据是一家大数据技术公司,为互联网、金融、电信等行业提供数据质量、数据集成、大数据分析和复杂数据分析等方面的基础软件产品和全面解决方案。产品主要包括数据质量管理系统DQMS、数据剖析系统Profiler、数据集成

!![[新国人智慧科技]]

创新的数字化、交互式智能笔、大数据技术框架、基于人工智能模式构建的信息服务平台

!![[广州邦富软件]]

广州邦富软件是一家舆情管理系统提供商,以海量数据处理、企业级高端搜索引擎等为核心技术,服务于各省市级政府、公安部门、媒体以及大型企业,超过700个多行业高价值客户遍布全国

!![[邦赫信息科技]]

邦赫信息科技是一个行业媒体服务提供商和活动组织,提供机会,包括业务发展、市场推广和在家学习当地的行业专长外,全球企业的组织规划的工业活动,公共培训,出境和入境商务旅游等

!![[数据公园]]

数据公园是一个数据服务提供商,目前提供关于建筑、室内、时尚、产品、品牌、互联网六个板块的创新设计趋势和商业决策研究分析和数据报告,以帮助他们发展具有竞争力的想法、创意和创新结果。数库(北京)科技有限公







!![[北京晶朝]]

北京晶朝是一家以致力于进行教育创新的高科技公司,通过云计算、大数据、人工智能以及物联网等,将科学技术应用在教育平台建设和教育实践中,同时也是教育行业中的教育应用解决方案提供商以及教育IT方案服务提供商





!![[TCloud天云趋势]]

北京天云趋势科技(TCloud)是一家云计算解决方案及服务提供,产品包括企业级云管理平台Elaster云成平台、企业级Hadoop集群管理平台BDP云慧平台





!![[JIGO]]

JIGO是一家广告精准投放服务提供商,通过物联网及人工智能技术进行云端大数据的挖掘,对用户进行从程序化购买到广告介质筛选的广告投放一站式管理服务,并为用户提供电商平台引流、地理位置推送等营销服务





!![[UCloud]]

UCloud (上海优刻得信息科技有限公司),是国内领先的云计算服务平台,自主研发并提供计算资源、存储资源、网络资源等企业必需的基础IT架构服务,并深入了解互联网、移动互联网、传统企业不同场景下的业务需求,提供全





!![[薪福社]]

人事外包、薪税服务、福利商保等全方位的人力支持,以人工智能、移动互联和云服务等技术为基础,采用人事外包、薪税服务、福保买手等方式实现企业人力成本与业务成本的最优匹配,使得成本费用率持续可控,实现企业人





!![[GG云]]

GG云是一家内容影响力测试平台,基于人工智能和大数据,为营销内容传播提供“未卜先知”的预测服务,旨在帮助营销者在投放内容前即可预测未来的传播轨迹和营销效果,避免低效投放,让营销决策更有依据,隶属于深圳市





!![[浪潮]]

浪潮是一家云计算、大数据服务商。已经形成涵盖IaaS、PaaS、SaaS三个层面的整体解决方案服务能力,为客户打造云计算基础架构平台,提供IT产品和服务,全方位满足政府与企业信息化需求





!![[讯之智]]

讯之智是一家专注于IT技术的高新企业,通过搜索引擎、大规模分布式计算、云计算、大数据库以及人工智能等,致力于打造具有国际领先性的技术,为大数据时代的企业和机构提供信息解决方案

!![[览众数据]]

览众数据是一家人工智能及大数据分析技术推广商,致力于推广人工智能与认知技术,帮助企业从纷繁复杂的影响因素中精准定位各类运营决策的平衡点,以达成长期、动态的全局最优智慧决策,隶属于杭州览众数据科技有限公





!![[数据堂]]

数据堂是一家大数据服务平台,旗下有数据电商平台DataMall、移动应用提供数据API接口服务的数+平台等。数据堂(北京)科技股份有限公司旗下产品

!![[ANN9应用雷达]]

ANN9应用雷达是一家移动互联网产品信息、数据收集和搜索服务提供商,同时提供iOS开发者推广运营平台。北京阳光伟烨网络技术有限公司旗下产品







!![[无量数据]]

无量数据是一家数据分析服务提供商。利用人工智能技术,为广大用户推荐吃喝玩乐场所;让销售进程反馈结构化处理,多算法再评估和智能建议





!![[村里村外]]

村里村外是一家村里村外是基于人工智能核心技术(人脸识别和数据分析)的智能硬件运营服务商,主要面向线下实体商铺推出技术型管理工具、型运营工具、服务工具,提高实体商铺的竞争力

!![[BasicFinder深度搜索]]

BasicFinder是一家数据采集与标注服务商,专注于AI数据,主要业务包括提供大数据标注、人工智能技术咨询与提供相应的技术解决方案、智能系统企业定制和智能生活平台化产品等多项服务,隶属于北京深度搜索科技有限公司





!![[超对称ssymmetry]]

超对称科技是一家全球商业数据服务提供商,为基金、PE和公司战略部门在项目调研和交易过程提供决策支持







!![[广东联合数据]]

广东联合数据是一家交通运输数据服务提供商,公司通过大数据、人工智能、物联网、区块链四大核心能力的构建,致力于交通运输行业垂直领域的数据资源整合和创新应用



!![[开数科技]]

帮助企业实现多维度数据整合、人工智能分析及数据可视化,为企业提供数据处理、决策支持、机会挖掘、预测评估等服务







!![[族谱科技]]

族谱科技是一个大数据运营服务及解决方案公司,可为互联网金融、互联网保险、教育机构、人力资源等各行业企业提供有竞争力的求证解决方案和服务









!![[北京三体科技]]

北京三体科技是一家3D人体大数据互联网服务公司。在数据的获取上,利用3D扫描仪和开发的手机APP来获取用户的人体3D数据,建立人体尺码大数据库;通过数据来赚钱,用于互联网电商服务,比如用于互联网电商买鞋、定制鞋





!![[冲浪科技SurfingTech]]

.成立于2017年初,由欧洲知名VC投资,作为人工智能数据方案提供商,冲浪科技更懂技术和算法。冲浪科技创始团队均来自国内外知名人工智能公司

!![[云享智慧]]

云享智慧是一家专注人工智能实际应用的高科技创新公司,是eBay中国大数据创新中心入驻企业。创立之初,公司就专注于人工智能、大数据分析、挖掘以及基于数据行为分析的CRM系统部署与案例执行服务,分别服务于国内诸多



!![[物灵科技]]

物灵科技于2016年9月在北京成立,是面向全球的人工智能科技公司。物灵瞄准下一个AI智联网时代,专注于设计、研发、生产、销售及运营一系列AI消费品,致力发展成为国内外面向消费者市场及家庭场景的人工智能产品领域的一

!![[深眸科技]]

深眸科技是一家人工智能高科技企业,在人工智能、互联网、智能硬件等领域快速发展。企业汇聚了来自华中科技大学、美国北卡罗莱纳州立大学、美国密歇根大学、香港中文大学、上海交通大学等知名高校硕士博士,以及阿里





!![[荟萃]]

荟萃是一家人工数据标注服务提供商,通过“移动众包执行+全职员工全检”模式,为企业提供数据采集和标注服务,“移动众包”用于降低成本提高效率,“全职员工”用于保证交付数据质量,提供的服务包括图片、文本

!![[Cognea]]

Cognea 成立于2013年,是一家人工智能技术公司,其开发了一个认知计算和对话式人工智能平台,为用户提供个性化虚拟助手服务

!![[DeepMind]]

DeepMind 成立于2010年,是一家主打人工智能的技术公司,目前主要为模拟程序、电子商务、游戏开发等提供算法

!![[Scaled Inference]]

Scaled Inference 成立于2014年6月,是一家致力于人工智能技术研发的初创公司,公司的两位创始人均是Google的前同事,曾共同参与了Google内部的Google Brain项目

!![[AlchemyAPI]]

AlchemyAPI 成立于2005年,是一家提供企业级人工智能计算与分析的科技公司,公司推出的软件可对非结构化数据和文本进行实时分析和可视计算

!![[Unfraud]]

Unfraud 2014年成立于意大利,是一家利用人工智能检测并预防交易欺诈的公司

!![[Snips AI]]

Snips 2013年成立于法国巴黎,是一家专注于物联网与人工智能的公司,该公司的愿景是可以通过将人工智能植入各个设备中,设备会根据主人的使用习惯,预期用户操作并使操作更简单方便

!![[Textio]]

Textio是一家人工智能文书检验平台,是一家人工智能文书检验平台,在文书发布前通过机器阅读与文本分析帮助用户预测文书内容未来产生的效果及其成功的可能性

!![[Humai]]

Humai试图通过人工智能,分析与存储人类的对话方式、行为模式和思维模式,实现人类的复活

!![[Nova]]

Nova运用人工智能自动写邮件,在网站和社交媒体智能搜索邮件接收者的消息,例如邮件接受者们最近发的文章的标题或他们的爱好,并将它们囊括在邮件的内容中。Nova写的营销邮件要优于人工邮件,Nova的邮件拥有67%的邮件点击



!![[Findo]]

Findo是一家提供智能信息检索服务的人工智能初创公司,帮助用户在文档、文件、电子邮件附件,等海量信息中搜索自己需要的、有价值的信息





!![[Turi]]

Turi是西雅图一家人工智能创企,专门利用机器学习AI技术,帮开发商开发软件、管理服务,以及能够帮助企业推荐引擎、识别欺诈行为、分析客户使用习惯、以及更好地定位潜在用户







!![[zeroth.ai]]

Zeroth.ai是亚洲第一个人工智能以及机器学习专项加速器计画,立足于香港,从2016年年11月7日开始,Zeroth.ai加速器计画持续12周,提供融资以及获取人工智能以及机器学习顶级企业家,专家以及和著名投资者组成的全球网络协助







!![[KodaCloud]]

KodaCloud是一家人工智能WiFi云服务提供商,致力于通过机器人学习以及实时计算前后信息在客户的网络中随时对地的进行监控、学习、自适应以及对干扰参数的自动校正,无需网络IT人员的参与







!![[Petuum]]

Petuum是一个人工智能和深度学习研发平台,致力于帮助企业解决企业在人工智能和机器学习的部署过程中遇到的瓶颈问题和其他困难

!![[Cytora]]

Cytora是英国一家专注于数据的人工智能企业,通过捕捉隐藏存在于网络数据中的经济信息,让客户全面了解当下世界的变化以及占据商业的有利先机

!![[Maluuba]]

Maluuba 公司是一家加拿大的人工智能公司,Maluuba 的人工智能技术专注于使用深度学习和强化学习技术来提高计算机系统的熟练程度和有效性

!![[Amper Music]]

Amper Music是一家位于美国纽约的科技初创公司。致力于使用人工智能技术来创作音乐。在该公司的平台上,用户只需选择一个自己想要表达的情感、以及歌曲时长,人工智能就能按照你所选择的歌曲类型编写一首歌



!![[Beyond Limits]]

Beyond Limits是一家人工智能和认知计算公司,Beyond Limits主要产品工业级AI软件,该软件通过机器学习,可让能源领域的操作精准度和过程自动化水平更上一层







!![[Kyndi]]

Kyndi是一家人工智能解决方案提供商,提供了几种人工智能解决方案,从它所谓的“地平线扫描”开始,旨在预测广泛的业务成果,以帮助企业提前计划,以减轻风险或抓住可能出现的机会





!![[Converseon]]

Converseon是一家人工智能社交数据分析平台,主要利用人工智能技术收集社交媒体数据,然后通过高级选项把这些数据进行筛选、转化为企业营销线索,帮助企业更加精准地投放广告





!![[Crossing Minds]]

Crossing Minds是一家人工智能产品研发商,产品 “Hai” 能在音乐、图书、电影、电子游戏乃至餐厅和旅行等分类下,为用户推送个性化的建议







!![[tripl]]

tripl是一个旅行人工智能推荐平台,基于用户的社交媒体活动和App内志趣相投用户的数据向用户提供推荐信息





!![[Spiro]]

Spiro是一家CRM人工智能软件工具提供商,推出了一种“主动式CRM”平台,利用与企业邮箱的智能整合,他们可以分析电子邮件发送的内容,然后自动创建和更新客户个人资料,这种强大的自动化功能大幅降低了繁琐的数据输入







!![[Marketing Evolution]]

SaaS平台Marketing Evolution使用先进的算法,从多个不同来源获取数据,从而产生可操作性的销售建议。基本上,AI知道消费者究竟在做什么,并据此建议做出商业决策









!![[极睿科技]]

零售行业的创业公司,核心团队来自是清华大学计算机系人工智能国家重点实验室,并拥有来自清华、MIT、新加坡国立,人民大学的教授顾问团。公司推出的AIFashion与ECPro两款产品,分别在时零售及电商数据分析领域得到了多家





!![[协同汇金]]

协同汇金是一家专注于人工智能人才培训的机构。旨在为人工智能领域的创新企业提供符合企业需求的复合型人才。为相关人群提供低学习门槛的人工智能培训课程,就机器学习等人工智能相关主题进行研讨和授课

!![[浩德科技]]

浩德科技是一家进军人工智能领域创新科技的智能技术公司,致力于依托数据中心、轨道交通和智慧城市等行业的积累和市场渠道,开发相关领域的智能产品,并通过与香港中文大学和中科院深圳市先进技术研究院等科研机构建





!![[Biendata]]

Biendata.com是一个人工智能竞赛学习平台。用户可通过该平台报名并参加人工智能领域各类赛事,用户还可在线注册进行课程学习,并针对课程中遇到的问题进行反馈于总结





!![[艾福电子]]

艾福电子是一家专业制造无线通信元器件的企业,公司产品主要应用于基站、卫星、电子对抗、无线对讲机、图书馆等领域

!![[小库科技]]

小库科技是一家专注于人工智能在建筑行业应用的技术型公司,目前重点研发的项目“人工智能建筑师-小库”是世界上第一个人工智能建筑师,也是第一款在实际建筑应用层面上实现了人工智能的SaaS系统



!![[微指数]]

微指数是一个基于微信公众号的大数据分析平台,通过对500万公众号实时分析,为用户提供数据查询与数据可视化服务。北京微指数科技有限公司旗下产品









!![[深蓝学院]]

前沿科技教育和咨询。深蓝学院关注人工智能、机器人、增强现实等黑科技。课程涵盖领域包括人工智能、虚拟现实、增强现实、大数据,涉及内容有机器学习、深度学习、数据挖掘计算机图形学。







!![[第四范式]]

第四范式是一家大数据科技公司,将机器学习、人工智能、大数据等运用于金融、电信等领域,第四范式(北京)技术有限公司旗下产品





!![[大桔灯]]

大桔灯是一个科研和应用双元并重的综合机构。研究机构以HCP(人类认知组计划)为核心机构,以深脑人工智能阿勋(能升级人脑智能的人工智能)为核心,为人工智能做出贡献





!![[爱赛达课ceceSAT]]

爱赛达课是一家专注SAT考试业务的在线测评与学习系统,主要采用人工智能和学习者行为数据挖掘的方式,旗下有ceceSAT、ceceTOEFL及抢考位等



!![[南天创达科技]]

南天创达科技是一个主打人工智能建站的公司,同时提供运营网络服务器、网络营销及互联网运营辅助产品等相关技术服务

!![[欣歌拉科技]]

欣歌拉科技是一家人工智能研发型企业,专注于人工智能领域产品研发,致力于结合基础算法和前端研发,为生活提供更为高效和便捷的智能生活服务





!![[优路科技]]

优路科技是一家具有人工智能科研和开发能力的高科技公司,目前聚焦于打造人工智能驱动的智能在线媒体传播和流量变现技术。志在打造全球领先的媒体智能传播系统、用户数据分析和广告运营平台





!![[蜜枣科技]]

蜜枣科技是一家移动互联网公司,专注移动互联网大数据及人工智能领域,主要服务包括联网技术的技术开发与技术咨询;网络技术开发;计算机编程;计算机软件的设计等





!![[北冥星眸GalaxyEye]]

北冥星眸是一家专注于类人人工智能技术研发的公司,致力于搭建通用人工智能系统

!![[蔚蓝数据]]

蔚蓝数据是一家集环境监测产品、环境治理、空气质量解决方案设计、能源、环境、安全监测平台于一身的综合型企业,致力于为客户提供工业企业大数据服务解决方案,隶属于蔚蓝城市(北京)科技有限公司

!![[Appier]]

Appier通过人工智能技术,协助品牌和营销人员了解和分析使用者在手机、平板、个人电脑,甚至电视上多变的跨屏幕行为,并能透过跨屏幕分析掌握消费者购买决策的关键,进而找到最有价值的使用族群,有效达到商业目标





!![[智慧基石]]

智能基石是一家人工智能领域创业公司,致力于人工智能儿童教育产品(App,机器人),隶属于北京智慧基石科技有限公司





!![[睿沿科技]]

睿沿科技是一家人工智能高新技术企业。自主研发的Glaucus海神慧眼人工智能技术、TigerShark虎鲨云析大数据技术, 应用于商业数据整合管理、智慧城市、雪亮工程、智慧交通、智慧农业、电网调度管理及PHM等各领域中







!![[Safeness瑟弗雷斯]]

杭州瑟弗雷斯科技有限公司是一家人工智能安全信息服务公司,公司致力于将先进的传感技术、通信技术、机器学习等前沿科技有效结合,为中国的每一个家庭量身打造人居安全保障系统









!![[质享科技]]

质享科技是一家基于新一代物联网技术,专注于推动人工智能与家居产品及城市网络深度融合的公司,致力于为大众提供高质量、低成本的智能空气净化解决方案







!![[火石科技]]

火石信息科技是一家科技创新公司,致力于人工智能方向,以及构建人工智能、大数据分析行业的解决方案,隶属于深圳火石信息科技有限公司





!![[识代运筹NowledgeData]]

识代运筹NowledgeData是一家专注于对互联网,特别是社交网络的品牌口碑和舆情进行收集和分析的公司,为客户提供基于大数据的营销整合解决方案







!![[企鹅创新]]

企鹅创新(北京)科技有限公司是一个致力于创造人工智能和万物互联产品的公司









!![[柏谷科技]]

柏谷科技是一家专门从事大数据采集及分析的软件公司,致力于采集全球电商平台,专利数据库等各类文本数据对海量数据进行分析,专注于帮助企业更好的升级优化产品,帮助企业更好的理解海外终端消费者的真实需求





!![[大快搜索]]

大快搜索是一家大数据和人工智能基础软件供应商,公司主要产品“大快搜索”是一个开放的搜索和云计算技术平台,拥有和谷歌类似的技术构架,为用户提供开放的搜索、大数据和云计算服务,用户可通过自定义爬虫的抓取范









!![[AONEAI]]

AONE.AI是一家使用AI技术对机器数据进行分析、关联性洞察、可视化、的数据智能公司,我们为大中型企业级客户中存在的各种机器数据分析场景提供标准化的数据分析产品与商业套件











!![[数云大数据]]

数云大数据是一个高校大数据人工智能解决方案提供商,提供大数据、人工智能技术、云计算、区块链技术的咨询服务与技术支持,包括高校专业共建、课题研究、实验室搭建、师资培训与教学配套等业务





!![[数云大数据]]

数云大数据是一个高校大数据人工智能解决方案提供商,提供大数据、人工智能技术、云计算、区块链技术的咨询服务与技术支持,包括高校专业共建、课题研究、实验室搭建、师资培训与教学配套等业务







!![[开智学堂]]

开智学堂是一个人工智能教育技术供应商,致力于立足人工智能与认知科学,提供新一代人工智能教育基础设施及特色课程服务,隶属于开智微播(北京)科技有限公司





!![[逗玩科技]]

具有互动增值业务内容、人工智能应用模块以及点对点分发、云平台等技术





!![[依通科技]]

依通科技是一家移动互联网企业,专注于研究人工智能识别技术和大数据分析,为全国扫黄打非办和国家网信办发现、取证互联网涉黄等案件提供解决方案,致力于为用户提供网络安全







!![[脉策数据]]

脉策数据是一家大数据和人工智能领域的科技公司,在注重技术研发的同时,专注于实现数据科技的行业价值,通过大数据和人工智能技术对各类传统行业的深度服务,以挖掘出传统行业中的新价值





!![[观梦科技]]

观梦科技是一家开发人工智能系统的企业,致力于提供应用于教育,娱乐和休闲的多功能互动投影技术的解决方案,通过人体日常动作,操作投影应用效果,以及使用多方向投影方式,解放双手,并提供富有亲和力的全方位触摸









!![[莲子统计 Lotuseed Data]]

莲子统计( Lotuseed Data)是一个移动应用数据统计分析、数据挖掘服务平台,为广大移动应用开发商提供一站式的技术服务。杭州朋越网络科技有限公司旗下







!![[新农宝]]

新农宝是农业信息化云服务平台,致力于为涉农产业链的企业提供ERP+、CRM+、BI一体化云服务解决方案,构建农业大数据平台。通过基于移动互联网技术的SaaS服务,帮助企业实现传统交易、渠道管理、市场营销、数据资产和农事







!![[赛能科技]]

赛能科技是一家人工智能行业应用解决方案提供商,以整合智能化、信息化、自动化为基础,引入云计算、大数据、移动互联、物联网等多种技术,专注于智慧林业、智慧交通、智慧楼宇、智慧医疗、智慧教育等的研发

!![[Microduino]]

美科科技专注于人工智能/创客/STEAM教育方向,为学校、机构、个人提供全面的产品、课程、师资、服务一体化的解决方案,旗下Microduino系列模块是 Arduino 的兼容开发板,所有的模块都可以通过 UPIN-27 堆叠在一起,即插即用

!![[Turstech]]

海龟科技是一家从事人工智能研发与生产的互联网公司。公司致力于打造人工智能的生活环境。旗下的产品Hi橱窗是一款人工交互智能型橱窗,结合后台的大数据分析,将开启商店智能营销时代



!![[NetSpeed Systems]]

NetSpeed Systems是一家人工智能算法解决方案提供商,致力于为移动设备、网络系统和高性能计算等众多市场的片上系统设计人员提供技术支持,旗下开发有以人工智能为基础的SoC芯片内部互连解决方案OrionAI



!![[test.ai]]

test.ai是一家美国智能应用测试系统研发商,可以帮助验证用户流程是否适用于应用的每个版本,识别应用程序中的一些屏幕和元素,并设计测试用例,以便机器人可以验证应用程序的功能







!![[Leena AI]]

Leena AI是一个智能HR咨询服务平台,通过集成企业现有的人力资源管理系统,实现数据库的自动化更新以及提供针对HR职能的常规问题查询,如工资、考勤、报销、审批、假期等领域的问题,致力于帮助HR用户提高工作和沟通效率

!![[IUMind]]

iumind是一个基于异动指数的人才分析平台,基于大数据、人工智能等技术,提高求职者和猎头、HR间匹配度,通过抓取各种平台上的数据,会从候选人的异动指数、沟通指数、高潜指数、创业指数和给求职者打标签

!![[Lifebit]]

Lifebit是一个DNA数据分析AI云平台,这个系统可以像人类一样推理DNA数据。Lifebit可以为只接受过有限计算机和数据分析培训的研究人员、研发专业人员以及相应的组织机构(比如制药公司)提供一个高度可扩展、模块化、可重复的解决方案



!![[Sentient Technologies]]

美国  人工智能、大规模分布式计算   解决复杂商业问题的综合智能系统 三轮融资 1.4 亿美元    



!![[Dataminr]]	

数据挖掘	基于社交网络的数据分析服务	五轮融资 1.8 亿美元	





!![[知助数据]]

知助数据是一家SaaS数据服务公司,面向线下实体零售业和线上电商,提供基于深度学习数据模型的智能营销,运营决策服务,帮助企业提高运营效率,创始团队有美国黑石(Black Stone)高管,Teradata及Apple资深工程师,IBM中国



!![[刷呗]]

刷呗是一个能让每笔信用卡消费都能获得收益的产品,能为你包揽中国主流银行信用卡优惠信息、活动报名、回报获取等复杂工作,利用大数据云计算,人工智能辅以傻瓜式操作,隶属于上海烈熊网络技术有限公司

!![[Entropik Technology]]

Entropik是一家印度情感识别技术研发商,融入人类科学与艺术学科实现用户界面的交互,基于滑动的速度、滑动的延时、滑动的压力、用户的姿势以及用户的位置等指标,利用行为分析、数据物理模型以及手机互动等技术估测



!![[Swartz推之]]

Swartz推之是一个由智能咨询切入法律服务的平台,致力于通过获取海量的用户需求数据,律师们根据自己的经验把系统知识整合,再构建框架,分析结果后得到一套标准化的用户自检体系。隶属于成都斯沃茨科技有限公司



!![[舆情早报网]]

舆情早报网是一个舆情监控、智能情报和信息服务平台,隶属于北京智慧星光信息技术有限公司,旗下还有舆情秘书、舆情专家等服务

!![[寻游CTS]]

寻游CTS是一家旅游行程智能规划平台,利用大数据人工智能技术,为旅游行业打造旅游行程智能规划平台,帮助旅游业提升工作效率,降低人力成本,让互联网+旅游为传统旅游产业赋能,隶属于寻游旅行(深圳)股份有限公司

!![[ParallelDots]]

ParallelDots是一家深度学习公司,为客户提供品牌,产品或服务的舆情监控;其API还有助于多语言分析,关键词生成,文本分类,实体提取,语义,情感和意图分析

!![[Pymetrics]]

Pymetrics利用人工智能和神经科学小游戏来帮用户匹配最合适的工作,用认知和情感方面的元素来评价应聘者,具体方式是让他们玩一套神经科学小游戏。

!![[优计划]]

优计划基于互联网、云计算新型技术专注为新客运、新旅游、新零售、新制造提供软硬件技术解决方案,逐步结合大数据、物联网、人工智能技术,提升行业体验、运营效率



!![[果创科技]]

果创科技是一家智能科技服务平台,公司旗下的位置智能平台为大众客户提供一个城市的选址服务



!![[TripHappy]]

TripHappy,一家美国旅游公司,利用人工智能来突出相关的位置和邻里信息



!![[F5未来商店]]

F5未来商店是一家利用机器自动化结合算法替代人工的24小时智能无人便利店,这里无需服务员,所有烹饪、冲调饮品、取货、结算、库存盘点、清洁工作均由机器自动完成。佛山市创商汇电子商务有限公司旗下产品

!![[深圳海极光科技]]

深圳海极光科技致力于体感型人机交互方案的研发,主打家庭互动娱乐产品,提供体感遥控器等产品,可用于网络机顶盒、智能电视等



!![[发飚智能]]

发飚智能是一个AI订房服务平台,专注于服务差旅用户,可以作为智能酒店预订助手帮助差旅用户在所在城市预定到便捷、合适的酒店,平台具备智能比价及旅途智能规划功能,可以依据用户的个性化需求预订合适的酒店



!![[速盟Soomax]]

速盟Soomax专注Kinect体感技术研发,形成了自主产权的体感手势引擎,并开发了智能电视机顶盒



!![[饭来科技]]

饭来科技是一家烹饪机器人app开发商,致力于通过智能硬件+互联网的方式,打造“未来厨房”,通过硬件智能设备研发将厨房带入自动化、智能化的时代,并且通过互联网平台模式,让厨艺可传播,让在家吃饭变得非常简单美味



!![[朗万科技]]

朗万科技是一家从事电子设备与研发的科技公司,致力于电子消费设备的分销与推广,产品包括智能画笔、蓝牙耳机、智能睡眠仪系统等

!![[纳仕达]]

纳仕达是一家专注于智能电子感应垃圾桶生产的企业,一直致力于智能电子感应自动翻盖垃圾桶研发、制造、销售,拥有先进成套且业内领先的加工、检测、研究设备和技术

!![[Chokpis俏皮]]

Chokpis俏皮是一家专注于儿童智能日常产品研究、开发、生产及销售的科技企业,旗下的Cheers智能水杯与蓝牙一键同步,精确记录饮水量,根据儿童不同的年龄层制定每日饮水量

!![[火焰科技]]

火焰科技是一家专注于人工智能在旅游领域深度运用的高科技公司,主打产品为“呱呱智能”,是一个面向旅游业的虚拟助手,通过自然语言理解的技术,与游客互动,为游客指路、讲述景区人文故事风俗传说等,提升用户的旅游体验

!![[傲石电子]]

傲石电子是一家专注于电子产品开发和研究的公司,公司致力于智能可穿戴领域产品的研发、制造、销售和售后服务,目前公司的主要业务包括闪存卡、U盘、移动电源、智能骨传导眼镜、智能骨传导耳机、智能背包、云电盘等

!![[ideaPen智能触控]]

Ideapen是一个智能触控笔产品,主打主动式芯片感应触控,北京维锐科技有限公司旗下产品







!![[Odd Concept]]

Odd Concept是一家时尚定制化搜索引擎开发商,基于计算机视觉技术和深度学习技术,主要为电商提供时尚商品推荐引擎,帮助消费者获得精准消费推荐

!![[我要写歌]]

我要写歌APP是一款小白歌曲创作平台,采用人工智能学习人类作曲的方式,算法匹配乐理理论,来实现全民原创音乐





!![[Jawbone]]

Jawbone是一个智能手环研发商,其核心是让手环收集到的数据能够被智能化处理,进而更方便理解用户

!![[Vigo]]

Vigo是一个可以检测用户精神状态、并提供各类提醒服务的可穿戴式设备,在你精神孱弱的时候给予提示,并让你更好地协调休息与工作时间





!![[家事儿]]

家事儿是基于O2O+人工智能的私人管家服务平台,让天下没有难做的家事儿



!![[PIMI空气盒子]]

PIMI空气盒子是一个PM2.5监测软硬件设备,通过智能手机无线连接,提供室内空气质量的实时与历史数据,并提供相应的数据分析服务,及时预警,为你提供一个优质的空气解决方案

!![[作业盒子]]

作业盒子是一款基于大数据的智能题库产品,分为教师端与学生端,可在上面进行智能出题、多形式批注、学习效果的数据统计与图谱搭建,根据学习状况获得针对性智能推荐等等。北京知识印象科技有限公司旗下产品

!![[超级简历]]

超级简历是一款智能简历制作工具,针对学生和白领用户提供专业的中英双语模板和智能在线简历编辑器,通过数据分析和机器学习提供智能即时反馈和职位匹配服务,同时提供专家导师辅导服务

!![[魔镜在线]]

魔镜在线是一款基于人工智能的电子商务导购应用,它结合大数据,成为用户的云端私人助理,通过记录和分析用户的购物行为,获得更多个性化推荐,以及迅速定位自己想要的东西以及合适的价位。



!![[快推智能名片]]

快推AI智能名片是一款赋能社交数据,利用微信小程序名片结合SCRM的智能销售管理系统。主要服务于公司销售人员,帮其拓客,沉淀用户数据。北京西会科技有限公司旗下

!![[施马特]]

施马特是一家智能旅行硬件开发商,国内最早进入智能旅行硬件的团队,致力于打造优质便捷的旅行硬件。目前首款旅行箱产品对传统旅行箱进行了突破性的升级,开发了手机一键开锁、超距离报警、丢失找回、自动称重

!![[指环宝]]

指环宝是一家智能穿戴珠宝品牌,指环宝系列产品由为新科技的创始人黄竹及团队历时一年多研发成功,在不影响贵金属和彩宝的保值增值特性的前提下,将黄金、银、天然彩宝和信息技术结合在一起

!![[新创客]]

新创客是一家主打智能玩具研发和生产的公司,拥有自主品牌--旦旦面DanDanMan

!![[ToyTalk]]

ToyTalk是一家人工智能玩具研发公司,专为家庭提供智能早教玩具产品,通过集合Siri可以让玩具开口说话

!![[苏州连爱]]

苏州连爱是一家专注于智能穿戴设备领域的公司,目前公司拥有小方支付手表、彩虹支付手表和连爱智能手环三个系列的智能硬件产品。致力于开发可为大众用户提供便捷生活与时尚体验的智能硬件产品



!![[e推荐]]

e推荐是一个基于人工智能推荐引擎的个性化导购服务社区,利用人工智能的推荐引擎,帮助用户挑选符合自身需求的商品。杭州载言网络技术有限公司旗下



!![[盖特互动Get人工智能浏览器]]

帮助用户迅速精准地获取自己想要的内容。主打产品为Get人工智能浏览器,通过AI技术辅助查询,从而使搜索效率大幅提升
人机交互是与认知心理学、人机工程学、多媒体技术、虚拟现实技术等密切相关的综合学科。

传统的人与计算机之间的信息交换主要依靠交互设备进行,主要包括键盘、鼠标、操纵杆、数据服装、眼动跟踪器、位置跟踪器、数据手套、压力笔等输入设备,以及打印机、绘图仪、显示器、头盔式显示器、音箱等输出设备。

人机交互技术除了传统的基本交互和图形交互外,还包括语音交互、情感交互、体感交互及脑机交互等技术,以下对后四种与人工智能关联密切的典型交互手段进行介绍。
人脸识别是典型的计算机视觉应用,从应用过程来看,可将人脸识别技术划分为检测定位、面部特征提取以及人脸确认三个过程。

人脸识别技术的应用主要受到光照、拍摄角度、图像遮挡、年龄等多个因素的影响,在约束条件下人脸识别技术相对成熟,在自由条件下人脸识别技术还在不断改进。
三维重建可以根据重建的信息来源,分为单目图像重建、多目图像重建和深度图像重建等。

三维信息理解,即使用三维信息辅助图像理解或者直接理解三维信息。

三维信息理解可分为

* 浅层:角点、边缘、法向量等;
* 中层:平面、立方体等;
* 高层:物体检测、识别、分割等。

三维视觉技术可以广泛应用于机器人、无人驾驶、智慧工厂、虚拟/增强现实等方向。
国内领先的人工智能头部公司之一,专注于计算机视觉和深度学习的原创技术。公司以“坚持原创,让 AI引领人类进步”为使命,商汤科技建立了国内顶级的自主研发的深度学习超算中心,并成为中国一流的人工智能算法供应商。

目前,商汤科技已与国内外多个行业的400多家领军企业建立合作,涵盖安防、金融、智能手机、移动互联网、汽车、智慧零售等诸多行业,为其提供基于人脸识别、视频分析、无人驾驶、医疗影像识别等技术的完整解决方案。

商汤科技已成长为世界级的人工智能独角兽企业。

2018年5月31日,商汤科技今天宣布获得6.2亿美元C+轮融资,由阿里巴巴投资。

深度学习是建立深层结构模型的学习方法,典型的深度学习算法包括深度置信网络、卷积神经网络、受限玻尔兹曼机和循环神经网络等。深度学习又称为深度神经网络(指层数超过 3 层的神经网络)。

深度学习作为机器学习研究中的一个新兴领域,由 Hinton 等人于 2006 年提出。深度学习源于多层神经网络,其实质是给出了一种将特征表示和学习合二为一的方式。

深度学习的特点是放弃了可解释性,单纯追求学习的有效性。

经过多年的摸索尝试和研究,已经产生了诸多深度神经网络的模型,其中卷积神经网络、循环神经网络是两类典型的模型。卷积神经网络常被应用于空间性分布数据;循环神经网络在神经网络中引入了记忆和反馈,常被应用于时间性分布数据。

深度学习框架是进行深度学习的基础底层框架,一般包含主流的神经网络算法模型,提供稳定的深度学习 API,支持训练模型在服务器和 GPU、TPU 间的分布式学习,部分框架还具备在包括移动设备、云平台在内的多种平台上运行的移植能力,从而为深度学习算法带来前所未有的运行速度和实用性。

目前主流的开源算法框架有 TensorFlow Caffe/Caffe2、CNTK、MXNet、Paddle-paddle、Torch/PyTorch、Theano 等。
!人工智能的定义

2018版中国人工智能标准化白皮书认为,

''人工智能''是__利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、 方法、技术及应用系统__。

人工智能的定义对人工智能学科的基本思想和内容作出了解释,即''__围绕智能活动而构造的人工系统__''。人工智能是知识的工程,是机器模仿人类利用知识完成一定行为的过程。

根据人工智能是否能真正实现推理、思考和解决问题,可以将人工智能分为弱人工智能和强人工智能。 

''弱人工智能''是指不能真正实现推理和解决问题的智能机器,这些机器表面看像是智能的,但是并不真正拥有智能,也不会有自主意识。迄今为止的人工智能系统都还是实现特定功能的专用智能,而不是像人类智能那样能够不断适应复杂的新环境并不断涌现出新的功能,因此都还是弱人工智能。目前的主流研究仍然集中于弱人工智能,并取得了显著进步,如语音识别、图像处理和物体分割、机器翻译等方面取得了重大突破,甚至可以接近或超越人类水平。 

''强人工智能''是指真正能思维的智能机器,并且认为这样的机器是有知觉的和自我意识的,这类机器可分为类人(机器的思考和推理类似人的思维)与非类人(机器产生了和人完全不一样的知觉和意识,使用和人完全不一样的推理方式) 两大类。从一般意义来说,达到人类水平的、能够自适应地应对外界环境挑战的、具有自我意识的人工智能称为“通用人工智能”、“强人工智能”或“类人智能”。强人工智能不仅在哲学上存在巨大争论(涉及到思维与意识等根本问题的讨论),在技术上的研究也具有极大的挑战性。

强人工智能当前鲜有进展,美国私营部门的专家及国家科技委员会比较支持的观点是,至少在未来几十年内难以实现。 


!!其他观点:
人工智能作为一门前沿交叉学科,其定义一直存有不同的观点:

《人工智能---一种现代方法》中将已有的一些人工智能定义分为四类:像人一样思考的系统、像人一样行动的系统、理性地思考的系统、理性地行动的系统。

维基百科上定义“人工智能就是机器展现出的智能”,即只要是某种机器,具有某种或某些“智能”的特征或表现,都应该算作“人工智能”。大英百科全书则限定人工智能是数字计算机或者数字计算机控制的机器人在执行智能生物体才有的一些任务上的能力。百度百科定义人工智能是“研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学”,将其视为计算机科学的一个分支,指出其研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

生物特征识别技术是指通过个体生理特征或行为特征对个体身份进行识别认证的技术。



从应用流程看,生物特征识别通常分为注册和识别两个阶段。

注册阶段通过传感器对人体的生物表征信息进行采集,如利用图像传感器对指纹和人脸等光学信息、麦克风对说话声等声学信息进行采集,利用数据预处理以及特征提取技术对采集的数据进行处理,得到相应的特征进行存储。识别过程采用与注册过程一致的信息采集方式对待识别人进行信息采集、数据预处理和特征提取, 然后将提取的特征与存储的特征进行比对分析,完成识别。

从应用任务看,生物特征识别一般分为辨认与确认两种任务,辨认是指从存储库中确定待识别人身份的过程,是一对多的问题;确认是指将待识别人信息与存储库中特定单人信息进行比对,确定身份的过程,是一对一的问题。

下面将对指纹识别、人脸识别、虹膜识别、指静脉识别、声纹识别以及步态识别等技术进行介绍。


(1)[[指纹识别]]

(2)[[人脸识别]]


(3)[[虹膜识别]]

(4)[[指静脉识别]]

(5)[[声纹识别]]

(6)[[步态识别]]
声纹识别是指根据待识别语音的声纹特征识别说话人的技术。声纹识别技术通常可以分为前端处理和建模分析两个阶段。

声纹识别的过程是将某段来自某个人的语音经过特征提取后与多复合声纹模型库中的声纹模型进行匹配,常用的识别方法可以分为模板匹配法、概率模型法等。
视频编解码是指通过特定的压缩技术,将视频流进行压缩。

视频流传输中最为重要的编解码标准有国际电联的  H.261、H.263、H.264、H.265、M-JPEG  和MPEG 系列标准。

视频压缩编码主要分为两大类:[[无损压缩]]和[[有损压缩]]。



目前,计算机视觉技术发展迅速,已具备初步的产业规模。未来计算机视觉技术的发展主要面临以下挑战:

一是如何在不同的应用领域和其他技术更好的结合,计算机视觉在解决某些问题时可以广泛利用大数据,已经逐渐成熟并且可以超过人类,而在某些问题上却无法达到很高的精度;

二是如何降低计算机视觉算法的开发时间和人力成本,目前计算机视觉算法需要大量的数据与人工标注,需要较长的研发周期以达到应用领域所要求的精度与耗时;

三是如何加快新型算法的设计开发,随着新的成像硬件与人工智能芯片的出现,针对不同芯片与数据采集设备的计算机视觉算法的设计与开发也是挑战之一。
思必驰是一家语音技术公司。

2007年,思必驰创立在英国剑桥高新区,是拥有人机对话技术,国际上极少数拥有自主产权、中英文综合语音技术(语音识别、语音合成、自然语言理解、智能交互决策、声纹识别、性别及年龄识别、情绪识别等)的公司之一

其语音识别、声纹识别、口语对话系统等技术曾经多次在美国G家标准局、美国国防部、国际研究机构评测中夺得冠军,代表了技术的国际前沿水平,被中国和英国政府评为高新技术企业。

2018年7月19日,思必驰完成D轮5亿元融资。

中国企业

通过数据挖掘和机器分析提供个人性健康指数分析和预测。



!!''公司简称''
碳云智能


!!''公司概况''

碳云智能由[[王俊|碳云智能创始人王俊]]创建于2015年,该公司致力于利用生命大数据、互联网和人工智能引擎探索生命,帮助人们更好的管理自己的健康。


!!''企业详情''

* 全称:碳云智能科技有限公司
* 注册地址:深圳市前海深港合作区前湾一路1号A栋201室(入驻深圳市前海商务秘书有限公司)
* 办公地址:深圳市南山区侨香路4018号中航沙河工业区2号楼3楼
* 注册资本金:1286.55万人民币
* 关联企业:腾讯(股东)、中源协和(股东)、荣之联(股东)
* 公司官网:https://www.icarbonx.com/


!!''管理层'':

* 总经理:[[王俊|碳云智能创始人王俊]]
* 首席运营官:[[Bill W. Colston|碳云智能首席运营官Bill W. Colston]]
* 首席研究官:[[Jamie Heywood|碳云智能首席研究官Jamie Heywood]]
* 大中华及亚太区总裁:[[王春文|碳云智能大中华及亚太区总裁王春文]]

!!''愿景''

利用生命大数据、互联网和人工智能引擎探索生命,帮助人们更好的管理自己的健康


!!''产品''

[[觅我™]]:数字化精准健康管理平台

!!''业务情况''

!!!为生命科学研究提供洞察和数据支持

!!''发展历程''


!!2018

德国总理默克尔参访碳云智能。
http://www.sohu.com/a/233162918_479806

碳云体系数字生命研究院获深圳首批十大基础研究机构授牌

!!2017

碳云智能王俊、李英睿入选全球2017年“高被引科学家”名单

碳云智能王俊入选《快公司》“全球商业最具创意人物100”榜单。

碳云智能创始人王俊在TED 2017大会上发表数字生命主题演讲。

碳云智能被《财富》杂志列为全球50家引领AI创新革命公司。

碳云智能荣登《快公司》2017年全球最具创新力公司榜单中国Top 10。

碳云智能联合数字生命生态伙伴共同打造的数字化健康管理平台——觅我™正式对外发布。

碳云智能完成A轮融资,由腾讯领投超10亿人民币,估值超10亿美金。



碳云智能联合7家公司SomaLogic, HealthTell, PatientsLikeMe, AOBiome, GALT , Imagu和天津强微特生物科技有限公司成立数字生命联盟,碳云生态系统向7家公司投资约4亿美金。

!!2016

碳云智能宣布收购以色列人工智能公司 Imagu Vision Technologies,并建立 iCarbonX-Israel人工智能研发中心。

碳云智能出资3000万人民币完成对深圳般若计算机系统股份有限公司的战略投资,布局保险大数据。



碳云(马耳他)有限公司正式成立

!!2015

深圳碳云智能科技有限公司正式成立 

碳云智能科技有限公司在香港成立

!!企业的创建:

1999年,王俊联合创建华大基因(BGI),在担任公司CEO期间,他将华大基因打造成全球首屈一指的基因组学研发机构,主持了包括千人基因组、肠道微生物、复杂疾病研究、肿瘤基因组学计划、千种动植物基因组等多个具有国际影响力的重大课题。

2015年,王俊创立碳云智能,开启了一段崭新的征程,致力于利用生命大数据、互联网和人工智能引擎探索生命,帮助人们更好的管理自己的健康。现在,我们已经组建了专业的团队迈向这一愿景。


!!近期新闻

2018-11-28:碳云智能[[王俊|碳云智能创始人王俊]]入选2018科睿唯安“高被引科学家”名单
https://www.icarbonx.com/news/517.html

2018年9月19日:世界经济论坛上发布AI50榜单,碳云智能上榜

https://www.icarbonx.com/news/510.html

2018年5月25日:德国总理默克尔参访碳云智能。
http://www.sohu.com/a/233162918_479806
碳云智能创始人兼CEO,董事会成员,全面负责公司的经营管理和业务发展。

此前,王俊曾参与创建全球最大的基因组学研发机构——[[华大基因]],主持包括千人基因组、肠道微生物和复杂疾病研究等多个具有国际影响力的重大课题。

在此期间,王俊主导了华大科技、华大医学、华大股份的三轮融资,约10亿美金,并带领华大股份进入上市轨道。

2013年他带领华大基因完成对美国测序仪生产商CG的收购。

王俊曾获国家杰出青年,973首席科学家,新世纪百千万人才工程国家级人选,国家杰出专业技术人才,《自然》杂志2012年度全球科技界年度十大人物,《财富》杂志2013年度全球40位40岁以下精英 ,凤凰卫视2013年 “影响世界华人大奖”,《汤森路透》(现科睿唯安)2013、2014、2015及2017年“高引用、最热门科学家”,《快公司》2017年“全球商业最具创意人物100”等荣誉。

王俊拥有北京大学人工智能方向学士学位、生物信息学方向博士学位。
王春文,碳云智能大中华及亚太区总裁兼全球首席商务官,负责公司的商业化战略,管理商业化产品开发,市场营销和生态系统。

在加入碳云智能之前,他曾任通用电气数字集团(GE Digital)高级副总裁及亚太区总裁兼首席商务官。

任职期间,他负责管理公司在整个区域内的财务和业务运营,并创建了一个由客户、合作伙伴、行业领导者组成的,高效而创收的生态环境,横跨包括医疗健康在内的多个行业。

此前,他还在其他世界领先的高科技公司担任中国及亚太区高级管理职位,包括霍尼韦尔(Honeywell)、欧特克(Autodesk)、甲骨文(Oracle)和惠普(Hewlett Packard)。

王春文先生拥有香港科技大学工商管理硕士学位,同时也是欧洲工商管理学院(INSEAD)亚太区领导力毕业生。
Jamie Heywood,碳云智能首席研究官,董事会成员,负责公司的科学研究事务,包括数字生命研究院和数据科学团队。

当Jamie的哥哥Stephen在29岁被诊断患有肌萎缩侧索硬化症(ALS)时,Jamie开始进入转化医学领域并成立了ALS治疗发展研究所(ALS TDI),这是一家非营利性的生物科技公司。在这里,Jamie开创了一种开放性的研究模式,将治疗验证流程产业化,使该公司成为全球最大,最全面的ALS研究项目。

除此之外,Jamie在医疗健康领域内还创建了一系列具有革新意义的公司,其中包括:

* 全球最大的个性化健康网络平台——PatientsLikeMe;
* 研发出首个基于机理微生物疗法的临床阶段微生物公司——AOBiome Therapeutics;
* 一家通过网络生物识别技术鉴定和研发多种人类疾病疗法的公司——Genetic Networks;
* 一家帮助包括药物缺乏地区在内的人们更快地获取最新药物的社会企业——TheSocialMedwork。

Jamie拥有麻省理工学院(MIT)的机械工程理学学士学位。
碳云智能首席运营官,董事会成员,负责公司所有运营事务和技术开发工作。 

此前,他曾担任HealthTell Inc™公司创始人和首席执行官,该公司专注于开发能广泛表征免疫系统状况的下一代检测技术。

此外,Bill还曾是QuantaLife Inc. 公司的首席执行官兼科学创始人,该公司是一家成功的生物技术创业公司,开发了一种高精确度的遗传分析系统,现已在国际上销售。

Bill的职业生涯始于劳伦斯利弗莫尔国家实验室(Lawrence Livermore National Laboratory),在近20年里担任过多种高级领导职务,并帮助建立美国第一个民用生物防御计划。

Bill也是多家公司的董事会成员,包括Rheonix,Purigen和RubrYc。

Bill拥有加州大学戴维斯分校生物医学工程博士学位。
中国知名互联网公司,有QQ、微信等产品
体感交互是个体不需要借助任何复杂的控制系统,以体感技术为基础,直接通过肢体动作与周边数字设备装置和环境进行自然的交互。依照体感方式与原理的不同,体感技术主要分为三类:惯性感测、光学感测以及光学联合感测。

体感交互通常由运动追踪、手势识别、运动捕捉、面部表情识别等一系列技术支撑。

与其他交互手段相比,体感交互技术无论是硬件还是软件方面都有了较大的提升,交互设备向小型化、便携化、使用方便化等方面发展,大大降低了对用户的约束, 使得交互过程更加自然。

目前,体感交互在游戏娱乐、医疗辅助与康复、全自动三维建模、辅助购物、眼动仪等领域有了较为广泛的应用。 
官网:https://bot.tmall.com/

天猫精灵是阿里巴巴人工智能实验室(Alibaba A.I.Labs)于2017年7月5日发布的AI智能产品品牌


天猫精灵X1内置AliGenie操作系统,AliGenie生活在云端,它能够听懂中文普通话语音指令,目前可实现智能家居控制、语音购物、手机充值、叫外卖、音频音乐播放等功能,带来人机交互新体验

天猫精灵X1采用了专门为智能语音行业开发的芯片,在解码,降噪,声音处理,多声道的协同等方面做了专门的优化处理。
成立于2014年,是一家专注于计算机视觉的G家级人工智能高新技术企业,聚焦于图像识别云服务。公司总部位于广州,在杭州、北京、深圳均设有分公司。

公司目前有互联网、商业智能和安防教育三条产品线,其中互联网产品线为众多互联网公司提供内容审核服务,已经占据国内市场的60%。

图普科技与国内外多个行业的数百家知名企业建立了合作,涵盖零售、互联网、安防等诸多领域,提供基于人脸识别、视频分析等技术的完整解决方案。目前图普科技图像识别云平台日均调用量达10亿次。

图像理解是通过用计算机系统解释图像,实现类似人类视觉系统理解外部世界的一门科学。

通常根据理解信息的抽象程度可分为三个层次:

浅层理解,包括图像边缘、图像特征点、纹理元素等;

中层理解,包括物体边界、区域与平面等; 

高层理解,根据需要抽取的高层语义信息,可大致分为识别、检测、分割、姿态估计、图像文字说明等。

目前高层图像理解算法已逐渐广泛应用于人工智能系统, 如刷脸支付、智慧安防、图像搜索等。
第三挖井人:[[YuGongde|yugongde]]

第二挖井人:Tiddlyspot团队

第一挖井人:Tiddlywiki团队


''什么是挖井人计划''

吃水不忘挖井人

信息爆炸的时代,经过收集整理的信息便于大家查询和梳理知识体系。

挖井人计划就是记录收集整理这些信息的贡献者们。

注意,每一位使用本文件梳理知识体系的人,也都是挖井人,不管你是将梳理后的文件供自己使用还是分享出来让更多人参考。
!关于本文档

!!本文档用途:

梳理知识体系,分享知识成果,构建''属于自己的个人图书馆''

!!本文档使用方法:

一、点击右上角这个图标,可以将本文档保存在你的电脑中。
保存后的文档可以随时点开访问(只要你的电脑中有浏览器,IE,Chrome,火狐,或者360浏览器都可以)。


[img[guide1.png]]

二、点击每个条目的这个图标,可以编辑,然后点√符号,可以保存

[img[guide2.png]]

三、保存在你电脑中的文档可以任意编辑,不会改变本网站中的内容

四、欢迎将你整理过的个人图书馆发给我们,向更多人分享你的知识成果

''分享方式:''

如果你的个人图书馆是在目前文档上的局部修改或者添加,我们会将改动内容添加到本文档,并备注贡献者

如果你的个人图书馆有较大改动,或者自成体系,我们将会为你单独建立页面和链接,供大家分享。

联系我们:

[img[yudade.jpg]]

致谢:本文档采用Tiddlywiki技术
问答系统分为开放领域的对话系统和特定领域的问答系统。问答系统技术是指让计算机像人类一样用自然语言与人交流的技术。

人们可以向问答系统提交用自然语言表达的问题,系统会返回关联性较高的答案。尽管问答系统目前已经有了不少应用产品出现,但大多是在实际信息服务系统和智能手机助手等领域中的应用,在问答系统鲁棒性方面仍然存在着问题和挑战。

自然语言处理面临四大挑战:

* 一是在词法、句法、语义、语用和语音等不同层面存在不确定性;
* 二是新的词汇、术语、语义和语法导致未知语言现象的不可预测性;
* 三是数据资源的不充分使其难以覆盖复杂的语言现象;
* 四是语义知识的模糊性和错综复杂的关联性难以用简单的数学模型描述,语义计算需要参数庞大的非线性计算。
无监督学习是利用无标记的有限数据描述隐藏在未标记数据中的结构/规律, 最典型的非监督学习算法包括单类密度估计、单类数据降维、聚类等。

无监督学习不需要训练样本和人工标注数据,便于压缩数据存储、减少计算量、提升算法 速度,还可以避免正、负样本偏移引起的分类错误问题。

主要用于经济预测、异 常检测、数据挖掘、图像处理、模式识别等领域,例如组织大型计算机集群、社 交网络分析、市场分割、天文数据分析等。 


!无人机

!![[大疆无人机]]

深圳市大疆创新科技DJI是一家专注于飞行器及飞行影像系统的技术公司,主流产品线包括:Ace One 系列工业无人直升机飞行控制系统及地面站控制系统、WooKong-M 系列、禅思系列、筋斗云系列、Phantom系列一体化多旋翼飞行器等



!![[斯帕克科技]]

斯帕克科技是一家消费级智能无人机开发商,此外还开发了5X兴趣社区等

!![[天峋创新]]

天峋创新是一家无人机科技公司,专注于高端无人飞行系统的研发、制造、集成、服务,为客户提供可靠、专业的无人系统行业解决方案,旗下有UniCorn无人直升机

!![[北醒光子]]

北醒光子BeneWake是一家专注于“机器人眼睛“的高科技公司,主要产品线可以分成无人机定高雷达 、小型避障雷达和多线长距雷达

!![[飞拍无人机]]

飞拍无人机是一家提供飞拍设备的企业,专注于为客户提供飞拍产品,包括VR飞拍产品以及APP、无人机等飞拍产品,致力于为客户提供优质飞拍体验

!![[北斗无人机]]

北斗无人机是一家无人机研发商,现有产品及服务主要包括以垂直起降固定翼无人机为核心的监视侦察类综合方案、以多旋翼无人机为核心的农业植保综合解决方案和以智能飞行控制系统为核心的无人机生态环境

!![[FLYPRO飞豹无人机]]

飞豹科技是一个消费级无人机研发商,专注于消费级智能运动无人机产品研发设计,在飞控系统、视觉定位系统和自动避障等技术上领先全行业,具有极其强大的研发能力

!![[科比特航空]]

科比特航空是是一家专业从事多旋翼无人机系统研发生产销售和服务的科技公司,提供专业的电力、公安、消防、农业、航拍等行业服务

!![[零零无限科技]]

零零无限科技是一家无人机技术公司,创业团队来自斯坦福人工智能实验室,以及 Google

!![[星图智控]]

星图智控是一家航拍研发商,主打近距离拍摄、操作简便的无人机,产品包括“蜻蜓”无人机与“时光”低空拍照无人机,平台通过智能便携的手机APP结合飞控模块技术来控制无人机

!![[Prodrone普宙无人机]]

普宙飞行器是一家研发、生产和销售无人机的科技公司,主打产品为Prodrone普宙无人机

!![[零度智控ZERO TECH]]

零度智控(北京)智能科技有限公司,致力于无人机自驾仪的研发并为客户提供全方位的行业解决方案。主打产品为消费级无人机 Xplorer 

!![[易瓦特无人机]]

湖北易瓦特科技是一家致力于科技创新的民用无人机系统制造商,现已形成业内无人机全系列、全产业链布局,内容涵盖无人系统研发、生产、销售、培训、技术与飞行服务等

!![[飞米科技]]

飞米科技是一家专注于机器人和无人机等相关领域的研发的企业,致力于让更多的人享受飞行的乐趣。公司已经掌握和拥有了无人机领域的多项核心技术(飞控、云台、高清图像实时图传、计算机视觉等),先后申请100余项相关专利

!![[一飞智控]]

一飞智控是一家无人机科技公司,专注智能无人装备控制系统解决方案的研发与应用,针对不同机种及领域提供专业配置

!![[中翔腾航]]

中翔腾航是一家致力于智能无人机的研发、生产和服务的科技公司,其研发的无人机产品广泛应用于军事、国土资源测量、气象观测、城市规划、林业矿产资源等众多领域

!![[JOUAV纵横自动化]]

成都纵横自动化是一家无人机智能飞行控制与导航、机载任务设备、指挥控制系统以及系统集成服务商,产品有AP System系列自驾仪、无人机等

!![[常锋无人机]]

常锋无人机是一家集新型无人机设计、研发、制造及销售为一体的高新技术企业,以工业级高端无人机飞行器控制系统和整机为主线,其服务内容包括:无人机飞控、农业植保、环保无人机、防火救灾无人机、地质勘测无人机

!![[鳍源科技]]

鳍源科技是一家专注于海洋领域的无人机公司,主打产品为消费级ROV 智能水下无人机“FiFish飞行鱼 -Atlantis亚特兰蒂斯号”

!![[彼帮智能]]

彼帮智能是一家植保飞控及农机大数据解决方案提供商,主要以工业级及农业植保无人机、机器人智能控制系统的研发及终端与基础数据平台为核心。主营业务涵盖猎户座全自驾飞控、润物农业大数据系统等

!![[Lily无人机]]

Lily是一个消费级无人机品牌,尺寸仅比手掌大上一点,重量为1.3kg。 它的最大特点在于智能操作功能,使用时只需把它抛向空中,它就会自动迅速找到平衡并开始飞行,之后就可以无需操控,支持航拍、防水等功能

!![[天麒科技]]

以人工智能为核心,提供智能一体化农业服务的科技创新型企业,致力于空中无人机器人的研发和制造,对于无人机在农林牧业等应用有深入的探索,已取得业内瞩目的成果

!![[宙心科技宙斯无人机]]

宙心科技是一家无人机科技公司,通过ZEUS(宙斯)品牌为全球客户提供领先的无人机/机器人智能平台解决方案和服务

!![[安果智拍无人机]]

安果智拍无人机是一个专注于人工智能的创新型平台,致力于研发家用智能机器人,开启属于中国的工业4.0时代。隶属于深圳市盛祥科技开发有限公司

!![[紫燕无人机]]

紫燕根据不同领域,定制专属解决方案,拥有自主研发整机、航电集成、活塞与涡轮发动机集成运用技术,致力于使用成熟技术与前瞻科技,制造空中机器人飞行平台,为客户提供高附加值,目前主打产品是无人直升机

!![[壮龙无人机]]

壮龙无人机是一家从事无人机生产与推广的公司。公司致力于工业级无人机整机及飞行控制系统的技术研发。公司目前的主要业务是工业级无人机的生产与调试



!![[Onagofly无人机]]

Onagofly是一个无人机品牌,提供「极品飞车」式的操控体验系统,在手机上安装 Onagofly AAP 就可以实现对无人机的操控,进行远距离跟拍照片或视频

!![[Yuneec昊翔]]

Yuneec(昊翔无人机)是一家无人机生产研发公司,同时设计和生产面向工业和个人用户使用的无人机产品,并且能够提供完善的 OEM/ODM 生产方案。在公司的公司有中誉电子(上海)有限公司/昊翔电能运动科技(昆山)有限公司

!![[Eulerspace欧拉空间]]

Eulerspace欧拉空间是一家消费级无人机研发商,主要产品包括π系列无人机和腾讯空影YING无人机。其产品内置卫星定位和声光定位系统,用户通过APP来操控无人机,并且实现空中拍照和录制功能

!![[九号电子]]

九号电子是一家步步高集团投资的一个做消费类智能无人机的公司。是步步高集团在OPPO、VIVO、小天才手表后第四个重点产品线,隶属于苏州九号电子科技有限公司

!![[JYU疆域智能无人机]]

疆域智能是一家集无人机研发、设计、生产、销售于一体的高新科创研发公司,致力于无人机研发、多功能飞行器、智能硬件设备、移动互联网设备、物联网技术等领域。现已开发Spider X系列、Hornet s 系列产品

!![[亿航智能]]

亿航是一家全球领先的智能飞行器科技公司,总部位于广州,在美国加州、德国杜塞尔多夫、中国北京、上海设有分公司。以“让人类像鸟儿一样自由飞翔”为愿景,亿航打造了全球最容易操控的智能无人机GHOSTDRONE 2.0

!![[致导科技Aheadx]]

致导科技Aheadx是一家无人机创业公司,首发产品TransDrone A4是一款可变结构、易于折叠收纳的四旋翼无人机

!![[弧光航空]]

弧光航空是一家专注于农业无人机研发的公司,目前首款产品为用于农业植保领域的Ar-17无人直升机,主要面向大型种植农户、农业合作服务商、私人农场等用户群体

!![[CEEWA奇蛙无人机]]

奇蛙CEEWA是一个主打产品为智能跟拍运动无人机——奇蛙无人机的品牌。致力于以全新的飞行态度,使飞行不再是少数人的专利,隶属于南京奇蛙智能科技有限公司

!![[广州笨笨]]

广州笨笨是一家智能无人机研发生产企业。该公司致力于成为无人机行业领域顶级的技术研发商。在消费娱乐级市场,面向低龄儿童市场制造无人机。而在行业应用中,让智能融入生活乐趣

!![[XAIRCRAFT极飞科技]]

XAIRCRAFT(极飞科技)是一家无人机解决方案技术公司,设计、制造、销售多旋翼飞行控制器及无人机载机等产品,隶属于广州极飞电子科技有限公司

!![[乐乐飞科技]]

乐乐飞科技是一家服务于农业生产经营主体的公司,公司致力于实现植保无人机的研发与应用,目前公司的主要业务包括,LE系列LE-N1植保无人机的研发和销售

!![[XNOR]]

XNOR是一家人工智能公司,致力于将AI技术融入到各种设备中。例如无人机、智能手机、以及汽车等。公司致力于通过将数学运算简化为二进制运算中的粗略等价,以提高AI模型在运行几个数量级的速度和效率

!![[草莓创新]]

通过自动机场+云端控制+AI数据处理,实现无人机的全程自动化飞行

!![[人人行拍R2TECH]]

人人行拍R2TECH是一家专注于高清图像传输的高科技科技企业,主要产品为1080p超视距无人机超清图像传输系统

!![[览意科技]]

览意科技(上海)有限公司是一家致力于为航拍和民用无人机产品提供全方位解决方案的高新企业。公司旗下的Cicada产品,是一款面向电子消费类的,易于携带、能快速入门、便于操作的飞行相机

!![[TopXGun拓攻]]

TopXGun是一家从事多旋翼无人飞机研发、生产及销售的科技公司,提供行业无人机飞控系统定制服务及解决方案,隶属于上海拓攻机器人有限公司

!![[为诺机器人]]

为诺机器人是一家提供智慧机器人和无人机整套解决方案及专业技术服务的公司,设有杭州为诺智能科技有限公司(旗下全资子公司),在安徽桐城设有生产基地、浙江杭州设有研发中心。杭州为诺智能科技有限公司

!![[臻迪科技]]

PowerVision Technology是一家智能科技公司,致力于智能无人系统开发、大数据分析及可视化系统集成、虚拟仿真服务等,主打产品有消费级无人机PowerEgg等。北京臻迪智能科技有限公司旗下品牌

!![[汤尼机器人]]

汤尼机器人是一家提供机器人开发平台及专业化部件市场的公司,主营方向为智能机器人和无人机相关技术研发、加工制造以及人工智能算法,已成功开发出无人机、吊舱、移动机器人、导航模块、小型LiDAR定位系统等

!![[翼动科技]]

重庆翼动科技是一家无人机科技公司,为我国各特种行业和部门提供智能、可靠的空中作业平台,为客户提供侦察、取证、监视、巡检和搜索等服务

!![[深圳一电航空]]

深圳一电航空技术是一个拍摄装备、多旋翼无人机系统制造商,产品覆盖军用、警用、商用和民用四大应用领域。是一家具备武器装备质量管理体系认证证书、装备承制单位以及二级军工保密资格单位资质的具备批量生产军警用产品



!![[元一创智]]

北京元一创智无人机科技有限责任公司由王启源博士于2014年5月创立,公司拥有丰厚的技术沉淀和强大的技术研发能力,已取得100余项发明、实用新型、 软件著作权等专利,在农业、环保、测绘、公安、防灾、电力、勘测、气象

!![[西安韦德沃德航空科技]]

西安韦德沃德航空科技是一家从事无人机整机系统研发设计、生产制造和飞行服务的科技公司,目前主打农用无人机服务,产品有SLK系列多旋翼智能电动施药机等

!![[Airlango]]

二郎神是一家高新科技企业,产品主要为无人机机载信号的智能处理和通信软件,隶属于北京二郎神科技有限公司]]

!![[飞眼无人机]]

飞眼无人机是一家无人机研发的公司,致力于为无人机应用服务,无人机研发,持续开发全新无人机应用场景,目前已有的如农业系统、公安系统、电力系统、油气管道系统等

!![[数字绿土Lidar360]]

数字绿土是一家激光雷达软硬件和综合服务提供商,致力于激光雷达(LiDAR)、计算机视觉、无人机以及三维地理信息的研发与应用

!![[万户航空航天科技]]

万户航空航天科技是一家无人机解决方案提供商,专业从事无人机及其相关产品研发、生产、销售及服务,隶属于北京万户空天科技有限公司

!![[艾森博]]

艾森博是一家专注于无人机系统的企业,公司集工业级无人机和应用系统的研发、生产、销售、技术集成及服务于一体,致力于为客户提供工业级无人机解决方案

!![[查湃智能charpie]]

查湃智能charpie是一家水下无人机产品研发商,以深水推进器和深水智能控制为核心技术,发布了四轴和六轴水下无人机,具有体积小的特点,同时为海军和国家科研院所定制开发超深海产品及核心配件

!![[龙圣联成]]

龙圣联成是专业从事智能飞行平台系统开发设计和应用服务的高科技企业,拥有强大的无人飞行器平台研发实力和专业化的服务作业能力。提供的产品和服务:“观察者-3”不只是无人机,更是一种便捷、安全、超值的智能化科技产品



!![[安云电子]]

安云电子是一家飞行器人工智能产品研发生产企业,公司专注于无人机飞行器等人工智能产品研究、开发、生产及销售的创新型高科技服务。提供无人飞行器产品以及服务,实现稳定地发展

	

!![[斯凯智能Skye Orbit]]

Skye Orbit无人机是一家硬件开发公司,公司以“智能硬件+移动互联网服务”为核心,致力于构建新一代智能设备,开发多旋翼无人机智能硬件设备以及视频图片内容的创作运营

!![[轻准科技]]

轻准科技是一家特种无人机及智能系统研发商,专注于研发应用于反恐、消防、侦查的无人机以及相关设备,致力于为军警执法部门研发实用的新型装备,提高军警部门的应急作战效能
无损压缩指使用压缩后的数据进行重构时,重构后的数据与原来的数据完全相同,例如磁盘文件的压缩。
百度旗下产品

小度,是内置DuerOS 对话式人工智能操作系统的智能助手。

DuerOS,百度度秘事业部研发的对话式人工智能系统,目的是与各行各业广泛合作,降低使用高新科技的门槛

官网:https://xiaodu.baidu.com
虚拟现实(VR)/增强现实(AR)是以计算机为核心的新型视听技术。

结合相关科学技术,在一定范围内生成与真实环境在视觉、听觉、触感等方面高度近似的数字化环境。用户借助必要的装备与数字化环境中的对象进行交互,相互影响,获得近似真实环境的感受和体验,通过显示设备、跟踪定位设备、触力觉交互设备、数据获取设备、专用芯片等实现。

虚拟现实/增强现实从技术特征角度,按照不同处理阶段,可以分为获取与建模技术、分析与利用技术、交换与分发技术、展示与交互技术以及技术标准与评价体系五个方面。

获取与建模技术研究如何把物理世界或者人类的创意进行数字化和模型化,难点是三维物理世界的数字化和模型化技术;

分析与利用技术重点研究对数字内容进行分析、理解、搜索和知识化方法,其难点是在于内容的语义表示和分析;

交换与分发技术主要强调各种网络环境下大规模的数字化内容流通、转换、集成和面向不同终端用户的个性化服务等,其核心是开放的内容交换和版权管理技术;

展示与交换技术重点研究符合人类习惯数字内容的各种显示技术及交互方法,以期提高人对复杂信息的认知能力,其难点在于建立自然和谐的人机交互环境;

标准与评价体系重点研究虚拟现实/增强现实基础资源、内容编目、信源编码等的规范标准以及相应的评估技术。

目前虚拟现实/增强现实面临的挑战主要体现在智能获取、普适设备、自由交互和感知融合四个方面。

在硬件平台与装置、核心芯片与器件、软件平台与工具、相关标准与规范等方面存在一系列科学技术问题。

总体来说虚拟现实/增强现实呈现虚拟现实系统智能化、虚实环境对象无缝融合、自然交互全方位与舒适化的发展趋势。
!!! 机会

* [[实习 - 微软亚洲研究院“明日之星”开放岗位|http://mp.weixin.qq.com/s?__biz=MzA4NzIyMDY0OA==&mid=2655391644&idx=1&sn=e3c63a2838439ab990fb0372fe665d69&chksm=8b8e675bbcf9ee4ddcd6e51cdca6c0c07298c3632cf388bb2932ecc1ae15273714a178e2f7ee&mpshare=1&scene=23&srcid=1102ZHSwSRuzjzvybqVqvjNG#rd]]

!!! 实验室信息

* Shu Wu 吴书 
** http://shuwu.name
** 中科院自动化研究所 智能感知与计算研究中心
* Wang Cong 王枞
** http://school.freekaoyan.com/bj/bupt/daoshi/20130811/1376182278164094.shtml
** 智能信息处理、信息安全、网络安全
* 北大可视化研究中心
** http://vis.pku.edu.cn
* 吴国仕
** http://school.freekaoyan.com/bj/bupt/daoshi/20130811/1376188859164239.shtml
** 大数据与智能信息处理

!!! 购书

* Android 系 https://sale.jd.com/act/RBGaVDt3qnjd58.html
* 人工智能与深度学习系 https://sale.jd.com/act/FUTLwVHIil71C.html

!!! 考研

* 王道论坛 - 计算机考研论坛 http://www.cskaoyan.com/forum.php

!!! 出国

* 最全CMU计算机各项目录取要求与就业统计解析—总有一款适合你 https://mp.weixin.qq.com/s/eeAHhmvA7Eyib7mfhD891Q

!!! 鸡汤

* 来不及,你就不学了吗? http://wenda.tianya.cn/jinghua/1a9bqsn7l5n80asl3r9pis84e856p152imgdt

!!! 脑洞

* 代码的深渊:2022年,一个试图用AI取代程序员的故事  https://mp.weixin.qq.com/s/M_2mygXpdRVe6Sk_bsNRPg
演化学习对优化问题性质要求极少,只需能够评估解的好坏即可,适用于求解复杂的优化问题,也能直接用于多目标优化。演化算法包括粒子群优化算法、多目标演化算法等。

目前针对演化学习的研究主要集中在演化数据聚类、对演化数据更有效的分类,以及提供某种自适应机制以确定演化机制的影响等。
依图科技成立于2012年,公司核心业务包括智能安防平台、智慧健康医疗、城市数据大脑、智能硬件设备等。

目前,依图的技术早已经服务全国20余省安防,为海关总署及国内边检等提供人像比对系统,并在招商银行、浦发银行,遗迹互联网金融等多个业务场景中广泛应用,车辆识别产品亦被公安系统广泛采用,依图也是目前国内唯一拥有10亿级人像库比对能力的公司,搭建了全球最大的人像系统,覆盖超过15亿人像。


美国公司 

官网:https://www.intel.cn

英特尔是美国一家主要以研制CPU处理器的公司,是全球最大的个人计算机零件和CPU制造商,它成立于1968年,具有50年产品创新和市场领导的历史。

!!产品

* 系统和设备
* 处理器
* 主板和套件
* 芯片组
* FPGAs 和可编程的设备
* 电源解决方案
* 内存和存储
* 服务器产品
* 网络和 I/O
* 无线
* 软件和服务
* 英特尔网关
* 技术

!!解决方案

* 企业和 IT
* 主题和应用
* 行业
* 合作伙伴
* 技术提示与技巧
* 游戏
* 运动
* 教育工作者
* 新闻与活动
* 开发人员解决方案
* 硬件开发人员
* 软件开发人员
* FPGA 开发人员
有损压缩也称为不可逆编码,指使用压缩后的数据进行重构时, 重构后的数据与原来的数据有差异,但不会影响人们对原始资料所表达的信息产生误解。

有损压缩的应用范围广泛,例如视频会议、可视电话、视频广播、视频监控等。
语义理解技术是指利用计算机技术实现对文本篇章的理解,并且回答与篇章 相关问题的过程。语义理解更注重于对上下文的理解以及对答案精准程度的把控。

随着 MCTest 数据集的发布,语义理解受到更多关注,取得了快速发展,相关数据集和对应的神经网络模型层出不穷。语义理解技术将在智能客服、产品自动问 答等相关领域发挥重要作用,进一步提高问答与对话系统的精度。

在数据采集方面,语义理解通过自动构造数据方法和自动构造填空型问题的方法来有效扩充数据资源。

为了解决填充型问题,一些基于深度学习的方法相继提出,如基于注意力的神经网络方法。

当前主流的模型是利用神经网络技术对篇章、问题建模,对答案的开始和终止位置进行预测,抽取出篇章片段。对于进一步泛化的答案,处理难度进一步提升,目前的语义理解技术仍有较大的提升空间。
语音交互是一种高效的交互方式,是人以自然语音或机器合成语音同计算机 进行交互的综合性技术,结合了语言学、心理学、工程和计算机技术等领域的知 识。

语音交互不仅要对语音识别和语音合成进行研究,还要对人在语音通道下的 交互机理、行为方式等进行研究。语音交互过程包括四部分:''语音采集、语音识 别、语义理解和语音合成''。

语音采集完成音频的录入、采样及编码;

语音识别完 成语音信息到机器可识别的文本信息的转化;

语义理解根据语音识别转换后的文 本字符或命令完成相应的操作;

语音合成完成文本信息到声音信息的转换。

作为 人类沟通和获取信息最自然便捷的手段,语音交互比其他交互方式具备更多优势, 能为人机交互带来根本性变革,是大数据和认知计算时代未来发展的制高点,具 有广阔的发展前景和应用前景。
云知声成立于 2012年,聚焦物联网领域的人工智能服务。公司总部位于北京,在上海、深圳、厦门均设有分公司。

公司专注于物联网人工智能服务,拥有完全自主知识产权、世界顶尖的智能语音识别和相关AI技术。

云知声的愿景是“智享未来”,自成立以来,公司利用机器学习平台,在语音技术、语言技术、知识计算、大数据分析等领域建立了领先的核心技术体系,这些技术共同构成了公司完整的人工智能技术图谱。

2018年7月19日,云知声完成C轮融资13亿RMB。



!!''公司简称''



!!''公司概况''



!!''企业详情''

* 全称:
* 注册地址:
* 办公地址:
* 注册资本金:
* 关联企业:
* 公司官网:

!!''管理层'':



!!''战略定位''



!!''产品''



!!''业务情况''



!!''发展历程''



!!企业的创建''



!!''近期新闻''




知识图谱本质上是结构化的语义知识库,是一种由节点和边组成的图数据结构,以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体—关系—实体”三元组,以及实体及其相关“属性—值”对。

不同实体之间通过关系相互联结,构成网状的知识结构。在知识图谱中,每个节点表示现实世界的“实体”,每条边为实体与实体之间的“关系”。通俗地讲,知识图谱就是把所有不同种类的信息连接在一起而得到的一个关系网络,提供了从“关系”的角度去分析问题的能力。 


知识图谱可用于反欺诈、不一致性验证、组团欺诈等公共安全保障领域,需要用到异常分析、静态分析、动态分析等数据挖掘方法。特别地,知识图谱在搜索引擎、可视化展示和精准营销方面有很大的优势,已成为业界的热门工具。

但是,知识图谱的发展还有很大的挑战,如数据的噪声问题,即数据本身有错误或者数据存在冗余。随着知识图谱应用的不断深入,还有一系列关键技术需要突破。 
指静脉识别是利用了人体静脉血管中的脱氧血红蛋白对特定波长范围内的近红外线有很好的吸收作用这一特性,采用近红外光对指静脉进行成像与识别的技术。

由于指静脉血管分布随机性很强,其网络特征具有很好的唯一性,且属于人体内部特征,不受到外界影响,因此模态特性十分稳定。指静脉识别技术应用面临的主要难题来自于成像单元。
指纹识别过程通常包括数据采集、数据处理、分析判别三个过程。

数据采集通过光、电、力、热等物理传感器获取指纹图像;数据处理包括预处理、畸变校正、特征提取三个过程;分析判别是对提取的特征进行分析判别的过程。
智能安防技术是一种利用人工智能对视频、图像进行存储和分析,从中识别安全隐患并对其进行处理的技术。

智能安防与传统安防的最大区别在于智能化, 传统安防对人的依赖性比较强,非常耗费人力,而智能安防能够通过机器实现智能判断,从而尽可能实现实时地安全防范和处理。


当前,高清视频、智能分析等技术的发展,使得安防从传统的被动防御向主动判断和预警发展,行业也从单一的安全领域向多行业应用发展,进而提升生产效率并提高生活智能化程度,为更多的行业和人群提供可视化及智能化方案。

用户面对海量的视频数据,已无法简单利用人海战术进行检索和分析,需要采用人工智能技术作专家系统或辅助手段,实时分析视频内容,探测异常信息,进行风险预测。从技术方面来讲,目前国内智能安防分析技术主要集中在两大类:

一类是采用画面分割前景提取等方法对视频画面中的目标进行提取检测,通过不同的规则来区分不同的事件,从而实现不同的判断并产生相应的报警联动等,例如: 区域入侵分析、打架检测、人员聚集分析、交通事件检测等;

另一类是利用模式识别技术,对画面中特定的物体进行建模,并通过大量样本进行训练,从而达到对视频画面中的特定物体进行识别,如车辆检测、人脸检测、人头检测(人流统计)等应用。
智能安防目前涵盖众多的领域,如街道社区、道路、楼宇建筑、机动车辆的监控,移动物体监测等。今后智能安防还要解决海量视频数据分析、存储控制及传输问题,将智能视频分析技术、云计算及云存储技术结合起来,构建智慧城市下的安防体系。


!![[地平线机器人]]	

中国	


地平线是全球领先的嵌入式人工智能核心技术和系统级解决方案提供商,致力于为自动驾驶汽车、智能摄像头等终端设备安装“大脑”,让它们具有从感知、交互、理解到决策的智能
基于云端的深度神经网络算法、图像、语音、自然语言理解和运动控制、技术集成	智能机器解决方案	


!![[亚马逊]]	

美国	人工智能综合研究	云服务、 Echo 等智能家居、机器人、电商产品应用	市值 3969 亿美元	

!![[3D Robotics]]	

美国	计算机视觉、机器人技术	无人机,软件服务	五轮融资 1.2 美元	

!![[Cyberdyne]]

日本  可穿戴设备   医疗助理机器人 B 轮融资 1200 万美元  

!![[iRobot]]	

美国	计算机视觉、机器人技术	电子产品,家用机器人	三轮融资 3000 万美元	

!![[ReWalk Robotics]]	

德国	计算机视觉、机器人技术	代步机器人,残障专用智能设备	两轮融资 1800 万美元	

!![[Dyson]]	

英国	智能机器,自动视觉定位及室内地图构建	清洁机器人		

!![[新松机器人]]	

中国	机器人及自动化技术	工业机器人和行业解决方案	约 400 亿人民币市值	

!![[埃夫特机器人]]	

中国	机器人	工业机器人、智能装备和行业解决方案		




!![[ABB Robotics]]	

瑞士	机器人及自动化技术	工业机器人、智能设备		

!![[Fanuc]]	

日本	机器人及自动化技术	工业机器人	

!![[Rethink Robotics]]	

美国	机器人、人机交互	智能机器人	

!![[Universal Robots]]	

丹麦	机器人及自动化技术	工业机器人

!![[库卡机器人KUKA]]

库卡机器人KUKA是一家工业机器人制造商及科技公司,几乎涵盖了所有负载范围和机器人类型。适用于各种应用的兼容控制系统和软件包完善了库卡公司的产品系列



!![[旷视科技Face++]]

北京旷视科技有限公司成立于 2011年10月,是中国领军的人工智能产品公司。旷视以深度学习和物联传感技术为核心,立足于自有原创深度学习算法引擎 Brain++,深耕金融安全,城市安防,手机 AR,商业物联,工业机器人五大核心

!![[矽创科技]]

矽创科技是一家IT信息系统专业技术、集成方案、安全服务提供商。该公司运用智能、物联网技术,帮助组织机构提升对外服务效能和内部IT资源管理效率。服务项目有智能服务机器人、智能应用动态感知、智能管控平台等智能

!![[锦杨科技]]

锦杨科技是一家主要从事大数据、互联网、人工智能技术研究与开发的公司,公司致力于为客户提供信息化解决方案、系统技术咨询、培训与实施等服务,目前公司主营业务包括移动终端APP开发、软件开发、系统集成和互联网基

!![[智久机器人]]

智久(厦门)机器人科技有限公司是是一个工业机器人、服务机器人制造企业,致力于智能机器人的研发与生产,以振兴民族工业为己任,成为智能机器人产业的推动者及民族品牌的领导者


!![[维顶机器人]]

维顶机器人是一家以“机器人应用为核心,为客户提供自动化解决方案的智能装备制造”高科技有限公司,具有独立研发、设计、加工、装配、调试大型工业机器人装备、焊接工作站、自动化生产线及系列化服务的能力


!![[邦鼓思电子科技]]

邦鼓思电子科技(上海)有限公司是一家致力于先进的智能服务型机器人系统的研发,生产及销售为一体的高科技企业。凭借在机器人定位及控制领域多年的技术积累沉淀,公司已经在智能导航,路径规划,自动避障等机器人技术


!![[众星智联]]

众星智联是一家专注于智能机器人操作控制系统研发与应用推广的公司。拥有三大核心产品:WELL编程语言、WELL STAR 智能操作控制系统与智联网。致力于让智能机器人以最安全的方式,大量地代替人类繁重的、劳累的、重复的工作


!![[普渡科技]]

普渡科技是一家智能机器人系统服务商,致力于以机器人为媒介,助力客户完成餐饮人工智能化的流程再造,实现餐饮管理智能化、运营高效化、服务标准化,把餐饮从业者从繁复工作中释放出来


!![[UArm机器人]]

UFactory团队是一家来自深圳的机器人及开源硬件创业团队,产品有迷你机械臂uArm机器人等。深圳市众为创造科技有限公司旗下产品




!![[恒通环境]]

恒通环境是一家国内下水道清淤机器人公司,集工业机器人技术及装备研发、系统设计、工程施工、运营管理以及第三方服务于一体

!![[Element AI]]

Element AI是一家人工智能创业孵化器,为全球网络安全,金融科技,制造,物流和运输,机器人等领域的企业提供 AI 解决方案



!![[RobArt]]

RobArt是一家机器人人工智能控制单元开发商,致力于低成本人工智能控制单元的研发和应用。旗下开发了人工智能导航物联网系统,帮助家庭机器人可以智能地行动和导航,了解周围环境



!![[高工产研]]

高工智能是高工产研旗下专注于人工智能及机器人技术、行业应用的产业研究和专业传媒平台。重点关注AI技术在安防、汽车、机器人等领域的落地应用

!![[壹佰米科技]]

壹佰米科技是一家是一家以人工智能技术实现产品落地和构建人工智能生态圈为目标的科技公司。产品以家庭市场的人工智能电子产品和针对行业市场的机器人产品为主



!![[机智马]]

机智马是一个提供人工智能服务的公司,公司主要提供图片识别、人脸识别、视频识别、语义分析和机器人等服务





!![[Brain Corporation]]

Brain Corporation是一家专注于人工智能机器人的公司。主打产品是一个名为 BrainOS 的平台,能够像训练机器人,在搭载 BrainOS 平台的机器人上,你需要重复做一些动作——比如捡垃圾,机器人就会自己去学习,然后主动完成任务


!![[aawant]]

安望科技有限公司专注于人工智能和智能机器人研发,由人工智能专家,算法工程师,有IT管理和营运经验的管理者共同组建而成。目前已有小灵灵APP和小灵灵智能音箱产品




!![[深之蓝]]

深之蓝是国内首家专业从事全系列水下机器人及相关水下核心部件研发、制造、销售的高新科技企业,公司围绕海洋资源探测和海洋环境监测两大主题面向社会提供自主水下航行器(AUV)、水下滑翔机(AUG) 以及缆控水下机器人




!![[智士科技]]

智士科技是一家机器人及人工智能芯片研发公司。公司开发的AI安防机器人可以按照预设路线进行自动巡逻,可远程遥控至指定地点,同时实时录制360度全进视频,同步语音拾取,支持音频播放,侵入报警、陌生人识别报警



!![[易拓威]]

易拓威是一家工业机器人及管理系统研发商,其主要产品包括桁架式机械手、及关节式机器人,以机器人传感和控制技术、云数据处理技术为手段,完成从原材料入库到产成品出库全生产过程的无人化工厂解决方案,涉及汽车制


!![[越维科技]]

越维科技是一家智慧城市智能化服务和信息化服务提供商,公司致力于将智能机器人技术、云计算服务、智能大数据与专业领域专家知识库相结合,为客户提供智慧税务服务、智慧政务服务、信息安全服务、系统集成服务等




!![[ECOVACS科沃斯机器人]]

ECOVACS科沃斯机器人是一家家庭服务机器人公司,产品线包括扫地机器人“地宝”、空气净化机器人“沁宝”、擦窗机器人“窗宝“、多功能家庭服务机器人“亲宝“等



!![[优尔博特]]

优尔博特是一家机器人研发生产商,公司致力于新型机器人以及水下无人机的研发生产,于2012年至2015年完成了项目的技术准备及科研攻关,并在苏州建立研发基地,在浙江建立了生产实验基地,2016年建立北京公司总部,从产品


!![[赛洛诗]]

赛洛诗是一家成人情趣用品研发销售公司,公司致力于利用物联网,大数据,云计算,人工智能技术,3D打印技术,提供深度定制成人用品,包括性爱机器人,陪伴机器人,智能飞机杯,智能按摩棒,啪啪手环等

!![[众德迪克]]

众德迪克是一家专业从事服务机器人、智能科技产品及智能装备研发、制造和销售的国家高新技术企业,在国内最早推进快消、金融、机场、医疗、政务、智慧城市等商务领域智能机器人平台服务

!![[智变赢乾]]

智变赢乾是一家集系统研发销售和服务为一体的高科技企业,主要以机器视觉技术为基础,立足于工业领域,开发各类质量在线检测分选机器人。其产品提供机器人抓取、自动排列、自动搬运、自动包装等整体自动化产品和服务


!![[树实科技]]

树实科技致力于外骨骼机器人、智能机器人及其相关技术的研究,围绕着以智能传感器为基础的感知技术,智能电机为基础的执行技术,大数据 / 机器学习为基础的认知技术来研发新型的智能硬件平台以及相关软件应用


!![[德迈科电气]]

德迈科电气是一家工业电气、自动化及信息化智能制造解决方案提供商,公司致力于为工业客户提供系统集成、智能产品、智能装备和工业服务,目前公司的主要业务包括智能穿梭车、工业物联网智能产品和机器人装备、智能物联网

!![[厨芯]]

厨芯机器人是一家智能商业厨房设备开发商,提供洗碗机设备、专用清洗剂、完整售后服务的整套解决方案,确保客户洗碗的效率和质量。北京红岸水滴科技发展有限公司旗下产品

!![[阿亦睿机器人]]

iRayrobot爱睿服务机器人是一个服务机器人在商用及家庭的系统化解决方案供应商,为商业地产,银行保险,旅游景区,办公楼宇,政务机构,连锁店铺,医疗养老等十多个行业定制化开发了数十套智能商用服务机器人方案



!![[阿尔德巴兰]]

阿尔德巴兰是一家机器人制造商,专注于人形机器人的制造、销售,推出的首个产品NAO机器人,致力于设计、生产和出售自动仿人型机器人



!![[EAI玩智商科技]]

EAI智能移动系统是一家专注于机器人移动的公司,致力于为用户提供智能移动产品和解决方案,主要产品有激光雷达、SLAM算法和机器人移动平台。隶属于深圳玩智商科技有限公司


!![[莫比嗨客]]

莫比嗨客是一家人工智能领域创新公司,业务包括在线任务智能匹配平台和基于树莓派操作系统智能机器人的系列整体解决方案,使用领先的人工智能技术结合树莓派研发、生产最智能的树莓派机器人


!![[嘉腾机器人]]

嘉腾机器人是一家智能物流机器人技术公司,致力于无人搬运车(AGV)、搬运机器人领域的研发、生产、销售、服务


!![[广州吉特科技]]

广州吉特科技是一家机器人科技公司,致力于运用机器人及人工智能技术引领仓储物流行业变革,为电商企业提供一站式高效、智能的仓储分拣解决方案


!![[盟仕乐人工智能]]

全球总部位于美国纽约。盟仕乐(MSL)智能科技将人工智能和机器人深度学习技术应用于商业领域,在计算机领域专家团队和全能型运营团队的共同努力下,将数据挖掘技术与多个行业的战略发展相结合

!![[阿泰因]]

阿泰因是一家创新、研发、销售智能服务机器人的企业。专注于智能控制、精确定位与自主导航、交互与感知技术、机器人云与数据挖掘等服务机器人核心技术方面的研发

!![[来创智能]]

来创智能是国家级高新技术企业,专注智能机器人、VR/AR虚拟现实与增强现实相关领域的研发、生产和销售。公司始终追求“技术创新和产业应用”不断积累技术]]


!![[爱见科技]]

爱见科技是一家专注于机器人产品研究、开发、生产及销售的高科技企业,致力于机器人底层运动控制、SLAM、自动避障、视觉识别、环境监测、软件交互等领域


!![[芯合科技]]

芯合科技是一家智动领域的服务商。以驱动控制、伺服系统为核心技术,研发了智能服务型机器人和机械臂,创造了高端可定制机器人产品,驱动器系列以及伺服控制系统,可用于国内外任意服务类、工业类机器人之中


!![[高途智驾]]

北京高途智驾科技有限公司(Gauto)成立于2015年9月,致力于智能驾培机器人的研发和制造,是智能驾校服务商和智能驾培机器人供应商。高途与北斗领军企业、高精度位置服务商深度合作,积极推动北斗高精度技术在驾培行业

!![[慧腾机器人]]

慧腾机器人专注于服务机器人和特种机器人的应用集成,以及机器人个性化定制,经过多年的机器人研发技术沉淀,聚焦安防安保服务领域,多种技术相互融合、不断创新,致力于成为全球领先的智能安保机器人及云安防平台综





!![[部族欧巴]]

部族欧巴是一家车载智能出行机器人研发商,专注于从事场景智能机器人的研发与设计,旗下产品“欧巴机器人”具有公交出行服务、多媒体交互、智能推广等功能。同时还提供站点周边信息查询、巴士查询等


!![[睿思奥图]]

一家通过视觉,听觉和多传感器融合提高自动机器的人工智能水平的公司。公司专注于为移动服务机器人提供环境感知与理解的智能化软硬件整体解决方案,在移动服务机器人的室内定位,导航方面有成熟方案



!![[庄生晓梦]]

庄生晓梦是一家主要从事计算机图形图像算法在VR直播领域上的应用的公司。致力于图形图像算法和机器视觉,包括无人驾驶、AGV搬运机器人、场景重构建模等



!![[钛米机器人]]

钛米机器人成立于2015年1月,是国内首家针对高端服务机器人市场提供产品和解决方案的高科技公司。公司核心团队拥有机器人研究、应用领域15年的行业经验。是国内少数具有自主知识产权,能自主快速提供机器人系统整体解






!![[AICRobo爱啃萝卜机器人]]

AICRobo爱啃萝卜机器人是一家集机器人操作系统、人工智能解决方案、智能移动机器人设计研发为一体的高科技公司。 公司在人工智能技术应用方面技术实力完备,包括机器人室内视觉定位、自主导航、智能避障、自然人机交互


!![[睿珀科技]]

服务领域涵盖:人工智能算法、智能装备&机器人、新能源汽车、轨道交通、工业互联网等,隶属于杭州睿珀智能科技有限公司


!![[思普瑞云]]

思普瑞云是一家智能工厂整体解决方案提供商,通过整合美国领先的先进信息技术和符合中国制造业实际需求的灵活解决方案,帮助客户打造智能制造的生产工厂,为中国制造业的转型升级提供强有力的工具支持和价值方案


!![[朗驰欣创]]

朗驰欣创是一家智能巡检机器人研发商,专注于从事特种行业智能巡检机器人的研发与设计,旗下主要产品包括电力巡检机器人、隧道智能巡检机器人、核应急处置机器人等,此外,还提供红外热成像检测产品以及智能视频分析


!![[高仙机器人]]

高仙机器人GS-ROBOT是一家商用自动扫地机机器人开发商,主营自动导航搬运车、自动商用扫地机\服务式机器人等自动化商用产品。上海高仙自动化科技发展有限公司旗下产品

!![[灵至机器人]]

上海灵至机器人科技是一家社交娱乐、医疗和家用服务机器人开发公司,主打产品为“纳豆服务机器人”,提供商场导购、看护机器人等服务


!![[克路德机器人]]

克路德机器人是一家专注于服务型机器人研发的企业,产品涵盖智能家居机器人,商业服务机器人及特种服务机器人三大系列,海尔家居旗下全资子公司

!![[WowWee]]

WowWee 是一家香港消费机器人和娱乐产品分销商,公司主要产品有RoboSpien娱乐机器人、LUMI简易型无人机和COJI 编程机器人

!![[瑞步康]]

瑞步康是一个医疗器械和康复器械生产商,公司致力于高端医疗器械和康复器械的研发、生产与销售,目前主要以外骨骼机器人中的关节技术为突破口,重点开发适用于智能假肢的智能膝关节和踝关节产品



!![[Doxel]]

Doxel是美国一家建筑机器人研发商,旗下机器人通过内置激光雷达传感器,使其可以每天扫描施工现场,在监控施工进展情况的同时还检查可能会出现的质量问题,从而确保施工团队能够按进度完成施工任务

!![[蜂巢科技HIVE Robotics]]

长期目标是研发具有世界级领先水平的机器人和人工智能技术,“使用人工智能技术红利解放人力”,探索科技创新之路

!![[欧里路科技]]

欧里路科技是一家新能源智能短途代步车供应商,致力于智能代步车的研发生产,自建研发生产团队,经过多年探索研究,欧里路已掌握全新的智能感知技术并获得国家多项技术专利,于2015年正式成立,以自主研发的“有路alllu



!![[中航双兴科技]]

中航双兴科技是一家股份制公司,主要从事声能技术研究、模拟仿真系统开发和智能机器人研制,3个领域业务模拟分别是声学技术、仿真技术、智能技术


!![[智伟达机器人]]

智伟达机器人是一家致力于机器人的研发、设计、销售、安装的的一体化企业,目前致力于各类移动机器人产品的研发与销售,如工业各类AGV、电站巡检机器人、安防机器人、餐饮机器人、医院无人运输机器人等各类移动机器人


!![[库范系统]]

库范系统是一家致力于用智能机器人系统来实现仓储操作的自动化的公司。产品可实现全面计算机实时控制,实现精细化数字化管理,高密度自动化存取系统,节约仓库用地

!![[达闼科技CloudMinds]]

深圳前海达闼科技有限公司是一家云端智能机器人运营商,致力于在全球范围内构建安全可靠的云体系,打造自主学习,人类可控的智能系统,构建安全高效的网络传输,创造智能安全的服务型机器人


!![[Yeelink]]

Yeelink是一个开源硬件和智能设备服务商,提供传感器云服务,并通过实时数据处理


!![[韦尔德斯凯勒]]

韦尔德斯凯勒是一家智能机器人研发商。主要从事高性能控制器、智能机器人、机器人中控中心、巨型无人化工厂的研发、 生产、推广及产业化工作




!![[柒联科技]]

柒联科技是一个服务型机器人研发商,致力于采用移劢互联网将机器人与人连接,采用交互界面,让机器人在人的协助下能够胜任多种无法靠机器独立完成的工作。采用统一管理后台,与设立在远端通常是经济不发达地区的各个


!![[麦仑智能]]

麦仑科技是一家人工智能、大数据技术和智能机器人研发公司,目前主打人工智能掌脉识别服务


!![[亚马逊]]	

美国	人工智能综合研究	云服务、 Echo 等智能家居、机器人、电商产品应用	市值 3969 亿美元	

!![[NumeBlox钮姆盒子]]

NumeBlox钮姆盒子是一家机器人视觉定位技术提供商,其系统提供多机协同工作软件体系,依托场景识别、物体识别和智能追踪技术,为智能机器人移动提供视觉解决方案。北京众力积木科技有限公司旗下


!![[EZ Robotics易致机器人]]

EZ Robotics是一家消费级机器人技术公司,主要制作低成本的教育及科研机器人,隶属于深圳市易致机器人科技有限公司


!![[艾克申机器人]]

艾克申机器人是一家专门从事机器人技术研发与推广的公司。公司致力于智能机器人的物联网控制系统设计。公司专注与机器人行走定位硬件产品开发,精通机器人设计制造



!![[知图信息]]

知图信息是一家全自动化定位导航及智能控制系统开发商,主要研究方向是基于自动化工业生产、自动化物流仓库存储及智能交通系统中所需的定位导航和控制技术,包括高精度实时定位、环境感知和智能预警技术、导航路径规划

!![[飞锐机器人]]

分拣智能机器人,拥有自然轮廓导航、模式识别、人工智能AI、智能感知、深度学习、机器视觉训练等各项技术研发与落地应用

!![[环球华信]]

环球华信是一家从事软件定制开发、信息系统集成及人工智能人形机器人研发与销售的企业,在云产品、系统产品、终端产品、人工智能产品的研发应用、维护、保养、综合服务等方面,形成商业模式。公司主要致力于智慧校园

!![[安泽]]

安泽是一家高新技术企业,致力于多领域、世界领先技术和高实用性机器人的研发、设计、生产、服务的专业化国际机器人研发制造企业。系列产品领域覆盖安防、空间探索、工业制造、核电站、实验室自动化、公共事业、医疗


!![[阿里巴巴机器人]]

阿里巴巴机器人一家机器人技术创新和机器人产品研发、制造、销售和服务的公司。打造服务机器人产品, 建立开放的技术平台和商业模式,与合作伙伴和开发者共同为中国用户提供的创新的商业、生活和消费场景的机器人解决方案

!![[掣京科技]]

掣京科技是一家智能康复训练机器人领域产品提供商,公司致力于肢体运动障碍患者智能康复训练产品研发、制造、销售,目前公司旗下产品有佩戴式智能康复训练手套和上、下肢联动全体位智能康复步态训练机器人


!![[珠海云洲智能科技]]

珠海云洲智能科技是一家专注于自动智能无人船等机器人自动化技术的公司,目前已经推出多种型号的无人船产品,主要有全自动采样无人船、应急监测无人船、采样监测两用无人船、海洋探测无人船和搭载各种仪器设备的测量

!![[车包包汽修]]

车包包汽修是一家汽修助理工具服务商,专注于汽车维修场景下的人工智能云助理。面向社会汽修厂,为汽修技师提供故障辅助诊断、技术案例语音书写、资料快速查询等功能,隶属于深圳车包包智能科技有限公司

!![[脉搏制造网]]

脉搏制造网是一家工业制造领域的智能工业服务平台,隶属于北京梵天智能工业科技有限公司,公司利用互联网、大数据、云计算等前沿科技,将企业设备产能与市场产能需求有效对接,提供以产能交易为核心,专注于工业行业

!![[智山机器人]]

智山机器人致力于提供全球领先的自主导航智能移动机器人,为无人仓库及生产车间提供仓储搬运及生产管理的智能化解决方案

!![[华之聚]]

华之聚是一家人机交互技术研发商,公司致力于利用人机交互技术研发出可以识别手势、人体姿态、语音、表情等的人机互动应用产品,主要应用于教育、保健、残障及老龄特护等领域

!![[iUNU]]

iUNU是一家农业种植系统研发商,将人工智能纳入商业温室和室内农场的检测系统,通过机器学习和计算机视觉技术,实现对个体植物健康状况大规模的跟踪和预测。该服务基于一款名为 “LUNA”的人工智能系统,它能使用摄像头




!![[鼎炬科技]]

鼎炬科技是一个智能自动化产品研发商,立足于人工智能、机器人运动控制、2D/3D视觉处理、多传感器综合应用等核心技术的研发,聚焦在智能工厂自动化生产线、工厂信息化等领域的专业化技术研发和推广,同时注重工程技术


!![[中源智人]]

中源智人是一家智能图像检测系统和智能图像机器人研发商,目前主营业务为智能手机显示屏检测和装配服务,新拓展业务为行业智能图像检测系统和智能图像装配机器人的研发与制造




!![[Root AI]]

Root AI是美国一家智能农业机器人研发商,致力于利用机器人来提高农作物的收割效率,旗下正在研发的移动机器人主要应用于在室内种植领域,可以采摘西红柿,通过检查作物来评估其健康状况,并进行简单的操作,如修剪藤

!![[遨博智能]]

遨博智能是一家致力于开发新一代轻型协作机器人的公司,旨在以模块化、开放性的轻型人机协作机器人,融合工业互联网和工业大数据的设计理念,开拓全新的工业生产方式,引领人机协作新时代

!![[优爱宝机器人]]

上海优爱宝机器人技术有限公司致力于模块化工业自动控制系统及机器人的研制和销售

!![[普得技术]]

普得技术有限公司是一家专注于智能增强和物联网技术应用的公司。包括机器人、智能照明、智能传感等。致力于打造个性化、有特质、有内容的智能产品,让生活更便利、更安全、更有趣

!![[妙手机器人]]

妙手机器人是一家智能机器人技术公司,产品包括:医疗及辅助手术机器人、工业机器人、服务机器人和科教机器人等



!![[对岸科技]]

对岸科技是一家专业从事(人工智能)智能交互技术的信息科技企业,可以实现近乎完美的人机交互

!![[图灵机器人]]

图灵机器人是一家以语义和对话技术为核心的人工智能公司,在人工智能机器人领域拥有数百项核心专利。主要从事机器人人工智能及机器人操作系统的研发与商业化应用服务


!![[MOV.AI]]

MOV.AI是一家工业机器人操作系统研发商。该公司的操作系统利用人工智能进行定位与导航,以及物体识别。其操作系统友好的管理界面帮助优化复杂的ROS网络管理,降低了设置和维护大规模机器人自动化系统的复杂性


!![[弈猫]]

弈猫专注于运动控制、伺服驱动、机器人自动化技术领域,为用户提供最完整,最先进的控制器、伺服驱动器、智能电机、运动控制算法及主站控制软件等产品解决方案



!![[Ispider机器人]]

Ispider是一个大厦外墙清洗机器人品牌,公司曾获得200万高科技项目补贴,于2014年入选厦门双百计划。Ispider并不直接进行产品销售,而是提供外墙清洗服务。

!![[August Robotics]]

August Robotics 是一家定制机器人解决方案提供商,致力于帮助人们和商业客户提高日常生活质量




!![[boocax布科思]]

布科思(BooCax)公司是国内领先的工业级移动机器人定位导航核心技术供应商,以及机器人柔性协同工作系统平台和AGV产品的供应商。公司成立于2014年,创始人团队来自于清华大学、上海交大、中科院自动化研究所等知名学府



!![[Automation Anywhere]]

Automation Anywhere是一家机器处理自动化研发商。Automation Anywhere的平台能利用软件机器人,让业务处理能够自动运行。




!![[百答科技]]

百答科技是一家专注于为企业提供人工智能领域的研究与应用的机构。公司专注于为企业提供全方位智能机器人解决方案


!![[DFRobot智位机器人]]

DFRobot是一家开源硬件、机器人产品服务商,为专业和入门级创客提供全方位的软硬件支持,提供开源硬件产品、机器人及零配件产品和知识型创客社区,隶属于上海智位机器人股份有限公司





!![[Geek+]]

极智嘉科技(Geek+)是一家物流仓储智能机器人科技公司,主打产品是物流领域的极智机器人拣选系统,提供以极智机器人为核心的机器人拣选系统、搬运自动化系统和分拣系统





!![[松迪科技]]

松迪科技是一个人工智能机器人研发商,致力于从事工业智能机器人系列产品研发和市场推广,隶属于东莞市松迪智能机器人科技有限公司
!![[普莱锞]]

普莱锞是一个研发用于高空幕墙清洗的机器人的团队。2016年,团队研发出10款原型机,并完成皮带运动、仿生行走、车轮行驶三次技术更新。隶属于厦门华蔚物联网科技有限公司

!![[巨佳电子]]

巨佳电子是一家硬件公司,专注于机器人视觉产品和自动光学检测设备的推广和应用,产品包括智能相机、视觉传感器、条码识别器及自动光学检测设备等

!![[依图科技]]

依图科技是一家计算机视觉科技公司,致力于为用户提供基于图像理解的信息获取和人机交互的产品。依图科技致力于解决机器看、听、理解的问题

!![[地平线机器人]]	

中国	基于云端的深度神经网络算法、图像、语音、自然语言理解和运动控制、技术集成	智能机器解决方案	A+ 轮融资 数千万美元	


!![[蓝胖子机器人]]

蓝胖子机器人是一家智能机械手研发商,致力于研发与机器人相关的智能硬件系统,包括人工智能学习、机器视觉、触觉感知、自主导航、多机协作、移动平台操作等项目


!![[大艾机器人]]

大艾机器人是一家机器人公司,专注于提供医疗机器人,企业完成康复机器人软、硬件产品研发、生产、销售和服务的一体化,企业产品包括外骨骼机器人,学步减重康复机器人等


!![[多方水下机器人]]

多方水下机器人是一个水下机器人制造商,水下机器人替代潜水员完成水下0-100m无人作业,用创新的技术开创水下作业新模式,便携式多功能水下机器人,重量轻,可单人操作;结构新颖,节能高效;操作简便,免培训 


!![[金石机器人]]

金石机器人是一家主打桁架式工业机器人的研发、生产公司,产品主要用于机械加工自动化生产线,金石机器人常州有限公司旗下产品


!![[南江机器人]]

南江机器人是一家专门研制开发和销售推广智能机器人及其应用产品的企业。智能机器人是融合人工智能、机器视觉和感知、精密机电等一系列高新技术的系统集成,具有无比的市场





!![[维兴顺科技]]

维兴顺科技是一家智能人形机器人制造商,公司致力于智能人形机器人的研发、制造和销售,产品有机器人和伺服舵机两大系列,具备智能对话、远程监控、头部触摸感应功能




!![[通用机器人]]

通用机器人是一家主打工业机器人的科技公司,主打关节型机器人,可用于汽车装配、包装、焊接、喷涂、打磨等行业




!![[米文动力]]

米文动力是一家机器人领域的通用智能控制系统解决方案提供商,致力于打造一款通用、高度智能化的机器人大脑,并以此为基础打造机器人开发通用平台,“让天下没有难开发的机器人”



!![[京华未来]]

京华未来是一家从事机器人研发、制造、销售于一体的公司。产品基于机器人、无人机和RFID开展广泛的智能化业务。为客户提供适合每个行业的机器人产品及服务

!![[博实]]

博实是一家智能成套装备系统解决方案提供商。包括工业机器人、自动化成套装备及系统解决方案,并提供相关的增值服务。满足客户多层次、全方位的需求



!![[吉影科技]]

深圳市吉影科技有限公司,简称吉影,英文名为Geneinno,蕴藏着“基因+创新=惊叹”的含义,是一家专业的水下机器人控制系统及机器人解决方案的研发和生产商。公司聚焦于水下空间领域的探索与开发,引导人们回归水域


!![[三固科技]]

三固科技是一家以机器代替人工为核心,为客户提供整体自动化解决方案的高新技术企业,致力于机器视觉的开发以及自动化机械的设计等,为客户提供完整的人工替代解决方案


!![[奇智科技]]

奇智科技是一个AI解决方案供应商,产品主要包括:奇智医养手表、奇智医养机器人、豆豆儿童陪护机器人


!![[艾利特科技]]

艾利特科技是一家智能机器人控制系统研发商。公司主营产品包括机器人控制系统集高性能多核ARM处理器、混合实时操作系统、先进轨迹控制算法、混合传感技术等,广泛应用于焊接、打磨、喷涂、人机智能协作、机器人物联网

!![[阿童木机器人]]

阿童木机器人是一个高端并联机器人品牌,致力于并联机器人本体优化设计、精度设计、机器视觉、误差补偿和运动学标定等核心技术的研究,主要业务是为企业级客户提供并联机器人的系统解决方案。隶属于辰星(天津)自动





!![[越疆科技]]

越疆科技(Dobot)是一家工业机器人及机械臂解决方案供应商,有包括智能控制、动力单元、灵活本体、互联云端的轻量级机械臂四大模块的核心技术,产品包括第一代Dobot 1.0、第二代Dobot Magician、第三代Dobot M1等




!![[霍曼科技]]

霍曼科技是一家致力于人工智能科技产品的自主研发型企业。将人工智能宠物喂食器、智能宠物陪伴机器人、以及多种宠物智能硬件的研发、生产提入战略日程,为家庭客户提供更加人性化的智能生活体验

!![[广强机器人]]

广强机器人是一个机器人装备供应商,致力于生产工业机器人、管道机器人等。隶属于宁波广强机器人科技有限公司


!![[艾米机器人]]

艾米机器人是一家科技型创新公司,集研发、生产、销售家庭服务机器人、养老服务机器人和医疗服务机器人于一体


!![[井荥机器人]]

井荥机器人是一家专注于机器人的智能硬件科技公司

!![[megarobo镁伽机器人]]

镁伽机器人是一家从事机器人技术研发与推广的公司。公司致力于为中小制造业企业提供轻量易用的协作机器人。公司目前的主要业务是线上平台的建设以及通过企业用户提供机器人技术





!![[青岛海之晨]]

海之晨工业装备是一家工业机器人及机器视觉产品研发商,通过机器视觉处理软件,解析物体的三维信息,并利用此数字三维信息做出测量、判断和引导,提高工业机器人的使用柔性,扩大机器人的使用场合,降低人工作业强度




!![[马路创新]]

马路创新是一家智能仓储软硬件开发商,专注于通过图像3D重建、机器视觉定位、机器学习、大数据分析处理等技术,开发出自动化智能仓储系统及电商B2C仓库系统、仓储机器人等。锥能机器人(上海)有限公司旗下产品


!![[深圳锐曼]]

深圳锐曼是一家专注于家庭服务型机器人开发的公司。公司现已研发出儿童玩伴机器人、老年玩伴机器人、服务机器人等产品。公司致力于创造实用、智慧并且一般家庭都用得起的机器人

!![[Emotech]]

Emotech是一个致力于开发机器人助手模型的初创企业,该公司的机器人助手名叫Olly,是一款搭载了人工智能技术的机器人,还拥有其自己的性格,致力于打造对标Echo的情感机器人公司


!![[卓来科技]]

卓来科技是一家超柔性工业机器人研发商,专注于工业自动化和人工智能,推出了机器人TR900、机器人驱控器、视觉控制器等产品





!![[XIMMERSE]]

XIMMERSE是一家基于计算机视觉与人机交互技术而开发移动虚拟现实交互解决方案的科技公司。其光学跟踪技术得到海内外同行与科技媒体的大力认可,是目前成本最低,跟踪性能最优的移动端VR交互方案。


!![[阿西莫夫科技]]

深圳市阿西莫夫科技有限公司是一家机器人制造商,致力于基于世界智能服务机器人开发适用于商业/消费/生活场景的应用和解决方案

!![[翼菲自动化]]

翼菲自动化是一家并联机器人制造商,涉及工业机器人研发制造、自动化系统集成、视觉系统开发等诸多领域。其主打产品迅翼并联机器人广泛应用于食品、药品、光伏、电子、日化、物流等行业的分拣、搬运、包装、涂胶


!![[环球农宝]]

环球农宝专注于人工智能机器视觉,致力于将人工智能技术用于工业机器人及自动化,是一家具备机器人视觉、深度学习以及软硬件一体化研发能力的高科技公司

!![[达峰智能]]

达峰智能是一家智能化和工业机器人服务商,主营业务包括公安平安城市系统、智能交通、科技法庭、智能楼宇、政府及企业信息化系统等

!![[亚马逊]]	

美国	人工智能综合研究	云服务、 Echo 等智能家居、机器人、电商产品应用	市值 3969 亿美元

!![[Vicarious]]	

美国	人工智能基础研究	新的计算机视觉系统,机器人视觉	五轮融资 7200 万美元	




!![[远荣智能]]

远荣自动是一家智能机器人系统研发商,致力于智能机器人的研发与制造,主要应用于表面涂装、抛光及打磨等技术领域。产品有ABB机器人及涂装线两种,其中ABB机器人应用于物料搬运、包装及喷漆等应用领域

!![[尖叫科技]]

尖叫科技专注于人工智能机器人外骨骼辅助系统开发,包含硬件和云端平台,目前已经推出推出下肢版和腰部版外骨骼两款产品

!![[大道智创]]

大道智创是一家专注于研发安保机器人的公司,主要研发和销售巡逻机器人、安保机器人等商用服务型机器人,以视觉定位为主,配合多传感器融合,在复杂环境下实现全自主定位巡航,目前已推出了一代产品“e巡 ”机器警长



!![[真机智能]]

真机智能是一个人工智能公司,专注为物流最后一公里提供机器人解决方案,推出的智能送货机器人真机地虎,降低物流费用并提高效率,解放快递、外卖的人力投入

!![[瓦力泰克]]

瓦力泰克是一家研究机器人领域的公司,正完成智能家居机器人、工业机器人、特种机器人等各种机器人产品系统性研发,并同时打造研、产、销服务一体的产业链


!![[福德机器人]]

福德机器人是一家工业特种机器人制造商。主要面向工业机器人、特种机器人、智能装备、MES云平台和数字化工厂,专业从事相关产品的设计、研发、制造、销售和服务



!![[智造未来机器人]]

智造未来机器人是一家文化加技术并行的版权型公司,致力于打造世界级机甲科幻文化,并将科幻做成真的。目前正在开发原创机甲科幻世界观。灵核世界,以及相关机甲娱乐产品,产品有漫画。


!![[圭目机器人]]

圭目机器人是一家致力于提供资本密集设施智能化建造、检修养护产品、服务与解决方案的公司。旗下产品有检测机器人,检测系统,爬壁机器人检修系统,工业机器人系统集成


!![[哈工大服务机器人]]

哈工大服务机器人是一家服务型机器人研发商,致力于开发教育娱乐机器人、餐饮服务机器人、迎宾机器人、康复机器人以及管道机器人等与人密切合作、半自主或全自主工作的新一代机器人。



!![[Slamtec思岚科技]]

Slamtec思岚科技是一家基于激光雷达的机器人定位导航解决方案供应商,致力于为国内外企业客户提供基于激光雷达的机器人定位导航解决方案。


!![[roobo智能管家]]

roobo是一家智能硬件科技公司,旗下产品包括智能机器人系列、骨传导智能运动耳机、VR一体机以及智能无人机等


!![[Flexbot璟和技创]]

Flexbot是一个主打下肢康复训练的智能机器人系统,上海璟和技创机器人有限公司旗下产品


!![[Ai.Frame人形机器人矩阵动力]]

AI.FRAME是一家人形机器人制造商,产品是一种多自由度、由微型舵机控制的类人形机器人,不仅能完成诸如跑跳、舞蹈等动作,更能进行群体互动例如踢球、摔跤搏击等,深圳市矩阵动力科技开发有限公司旗下产品


!![[梅卡曼德]]

梅卡曼德(Mech-Mind)致力于将智能赋予工业机器人,核心技术包括3D视觉、智能编程模型、快速环境建模、智能规划算法等。机器人将不再是仅能重复动作的笨拙机器,而是成为人人可用、随处可用的智能帮手。



	
!![[智小兔]]

智小兔是一款家用智能扫地机器人,隶属于深圳市智宝人工智能科技有限公司]]




!![[软晶科技]]

软晶科技是一家机器人视觉核心算法与部件方案提供公司,主营业务是人工智能(AI)核心算法软硬件及整体方案应用,目前已成功应用在智能扫地机、服务机器人等领域,落地的产品有紫光小优、小白爱家、松下等

!![[艾特智能]]

艾特智能是一家专业研究、开发、设计、生产和营销的创新产品初创企业,主要产品包括应用程序、控制蓝牙扬声器灯、3D印刷笔、智能机器人等




!![[123GO]]

123GO是一个人工智能无人售货柜连锁品牌,售货柜可以放置在任何封闭与半封闭空间中,装有图像识别系统与摄像头,摄像头会对顾客的动作进行捕捉,通过图像识别系统识别出顾客拿走的商品



!![[左岸芯慧]]

左岸芯慧是一家致力于以物联网改变农业产业生态的公司,公司利用物联网核心技术,与移动互联网、无线通信、云计算技术高度融合,通过工业化标准手段,开发建立了左岸智慧农业云平台

!![[AICVS无人店科技]]

AICVS无人店科技是一家智能零售方案提供商,专注于为用户提供基于人工智能和计算机视觉技术的无人便利店、无人货架、零售场景检测分析等软硬件配套方案,可应用于安防、交通、工业、汽车、零售等行业






!![[佳顺伟业CASUN]]

佳顺伟业是一家主打AGV(无人搬运车)的科技公司,目前该应用领域包括电子行业、汽车行业、家电行业、仓储行业、造纸行业等等,大客户包括国家电网、美的集团、格力电器、富士康、夏普等




!![[天若科技]]

天若科技是一家使用人工智能解决无人零售的公司,致力于提供类似于Amazon Go的无人零售商店解决方案,在每一个单品旁边放一个二维码,用户可以通过扫描二维码进入商品的详情页浏览和付款


!![[科创智源]]

科创智源是从事无人化装备、人工智能、高端制造、教育等领域研发、生产及服务于一体的产业运营服务机构,专注于产业发展运营、产业引导基金建立、投融资、管理咨询、技术转移、孵化等业务

参照工业和信息化部印发的《智慧家庭综合标准化体系建设指南》,智能家居是智慧家庭八大应用场景之一。受产业环境、价格、消费者认可度等因素影响, 我国智能家居行业经历了漫长的探索期。

至 2010 年,随着物联网技术的发展以及智慧城市概念的出现,智能家居概念逐步有了清晰的定义并随之涌现出各类产品,软件系统也经历了若干轮升级。

智能家居以住宅为平台,基于物联网技术,由硬件(智能家电、智能硬件、安防控制设备、家具等)、软件系统、云计算平台构成的家居生态圈,实现人远程控制设备、设备间互联互通、设备自我学习等功能,并通过收集、分析用户行为数据为用户提供个性化生活服务,使家居生活安全、节能、便捷等。

例如,借助智能语音技术,用户应用自然语言实现对家居系统各设备的操控,如开关窗帘
(窗户)、操控家用电器和照明系统、打扫卫生等操作;借助机器学习技术,智能电视可以从用户看电视的历史数据中分析其兴趣和爱好,并将相关的节目推荐给用户。

通过应用声纹识别、脸部识别、指纹识别等技术进行开锁等;通过大数据技术可以使智能家电实现对自身状态及环境的自我感知,具有故障诊断能力。通过收集产品运行数据,发现产品异常,主动提供服务,降低故障率。

还可以通过大数据分析、远程监控和诊断,快速发现问题、解决问题及提高效率。
智能交通系统(Intelligent Traffic System,ITS)是通信、信息和控制技术在交通系统中集成应用的产物。

ITS 借助现代科技手段和设备,将各核心交通元素联通,实现信息互通与共享以及各交通元素的彼此协调、优化配置和高效使用,形成人、车和交通的一个高效协同环境,建立安全、高效、便捷和低碳的交通。

例如通过交通信息采集系统采集道路中的车辆流量、行车速度等信息,信息分析 处理系统处理后形成实时路况,决策系统据此调整道路红绿灯时长,调整可变车 道或潮汐车道的通行方向等,通过信息发布系统将路况推送到导航软件和广播中, 让人们合理规划行驶路线。通过不停车收费系统(ETC),实现对通过 ETC 入口 站的车辆身份及信息自动采集、处理、收费和放行,有效提高通行能力、简化收 费管理、降低环境污染。

ITS 应用最广泛的地区是日本,其次是美国、欧洲等地区。

中国的智能交通系统近几年也发展迅速,在北京、上海、广州、杭州等大城市已经建设了先进的智能交通系统;其中,北京建立了道路交通控制、公共交通指挥与调度、高速公路管理和紧急事件管理等四大 ITS 系统;广州建立了交通信息共用主平台、物流信息平台和静态交通管理系统等三大 ITS 系统。

!!智能驾驶

!![[Tesla]]	

美国	自动驾驶	电动汽车	获得 20 亿美元融资	


!![[百度]]	

中国	人工智能综合研究	开源框架 PaddlePaddle、百度大脑、自动驾驶、互联网应用	市值 636 亿美元	

!![[Drive.ai]]	

美国	深度学习	自动驾驶汽车	1200 万美元融资	

!![[Mobileye]]	

以色列	计算机视觉、智能驾驶	汽车工业的计算机视觉算法和驾驶辅助系统的芯片技术的研究	5.15 亿美元融资	

!![[nuTonomy]]

新加坡 /美国 3D 自动驾驶技术   城市自动驾驶的算法和软件        


!![[Car+]]

Car+是一款行车信息处理和显示硬件,简单说就是通过现实增强技术将汽车外界环境和系统信息自然结合起来,让司机开车变得更加智能


!![[酷哇机器人]]

!![[Innoviz Technologies]]

以色列 智能 3D 传感、传感器融合和精准地图和定位等核心自动驾驶技术 物美价廉的高清晰度固态激光雷达 A 轮 900 万美元融资   


!![[滴滴]]	

中国	自动驾驶、机器学习、数据挖掘	自动驾驶汽车、智能交通和智能出行应用	估值约 340 亿美元	


!![[Uber]]	

美国	自动驾驶、机器学习、数据挖掘	自动驾驶汽车、智能交通和智能出行应用	估值 660 亿美元	

!![[行车宝]]

行车宝是一家ADAS功能研发商,致力于通过人工智能、模式识别以及计算机视觉等高科技手段来全方位保障驾驶员在驾驶过程中的行车安全。公司已开发出司机驾驶状态监测、前车防撞预警等核心功能,是拥有自主知识产权的ADAS


!![[智行者科技]]

智行者科技是一家专注于智能车开发的公司,主要从事无人驾驶智能汽车、智能驾驶辅助系统的开发


!![[Driva.ai]]

Driva是一款人工智能驱动的驾驶助手应用,它使用计算机视觉算法和深度学习技术,通过智能手机的摄像头获得前方视觉,帮助驾驶员获得更好的驾驶体验。Driva能够自动侦测前车的停止和移动,交通灯的变化,提醒驾驶员


!![[Peloton]]

美国  雷达和专用短程通信安全系统   自动驾驶卡车  四轮融资 1840 万美元   

!![[SmartDrive]]

美国  计算机视觉、数据挖掘  交通安全和表现的智能解决方案  六轮融资 1.8 亿 美元   

!![[Zoox]]

美国  全自动驾驶   全新的自动驾驶汽车       

!![[图森互联]]

中国  计算机视觉和深度学习  自动驾驶、图像识别SaaS 服务    A 轮融资 5000 万人民币 

!![[Minieye]]

中国  计算机视觉、智能驾驶  辅助驾驶系统     


!![[小猫停车]]

小猫停车是一家智能停车系统研发商,产品涵盖免取卡收费系统、全视频车位引导系统、全视频反向寻车系统、小猫停车手机应用等管理系统,广泛应用于商业广场、企事业单位、政府机构、写字楼及住宅小区等领域

!![[comma.ai]]

Comma.ai是一家自动驾驶技术研发商,致力于将普通汽车改造成自动驾驶汽车,适用于有电动助力转向和自动刹车系统的汽车。改造后的汽车可以自动驾驶在公路上,而且对车速不进行限制

!![[极木科技]]

杭州极木科技有限公司是一家专注于人工智能和机器人关键技术的科技创新公司,致力于自动驾驶技术和智能操控技术在工业类轮式机器人领域的应用与研发。第一款产品是基于自动驾驶技术的智能泊车机器人。 公司成立于2016


!![[英倍汽车智能]]

广州英倍是一家主打车联网、智能驾驶的汽车科技公司,致力于汽车智能驾驶、无人驾驶、车联网、汽车HUD抬头显示导航等产品与服务

!![[怡鼎科技]]

怡鼎科技是一家专注于人工智能科技研究的公司, 公司致力于汽车辅助驾驶系统研发、机器人视觉系统的研发,目前公司的主要业务包括智能视觉技术、影像技术的研究、机器人视觉系统和智能视频监控系统的开发及应用


!![[青飞智能]]

青飞智能是一家区域短途自动驾驶解决方案研发商,公司专注于为科技园、工业园等限定场景提供2-8公里短驳无人驾驶解决方案,车辆产品拥有自动避障、语音交互、远程请求操控等功能


!![[行云智能]]

行云智能是一家人工智能技术创新公司,专注深度学习在计算机视觉领域的应用研发,挖掘人工智能视觉的使用价值。致力于研发基于双目摄像头的高级驾驶辅助系统(ADAS)产品和技术,准确识别人行道、车道、行人、机动车


!![[ThinCI]]

ThinCI是一家美国深度学习及视觉处理技术开发商,提供计算引擎所提供的深度学习和视觉处理解决方案,包括汽车领域的先进驾驶辅助系统、个人电子的智能代理、增强照片和视频等


!![[Nuro]]

Nuro.ai是一家自动驾驶技术研发商,公司的主要业务范围还包括机器人技术和人工智能技术的研发,在开发无人驾驶汽车及其零配件产品的同时,还会开发一系列的人工智能产品


!![[TTTech]]

TTTech是一家车载以太网解决方案提供商,专注于汽车、飞机和航空航天系统方面的解决方案,以及研发自动驾驶系统的功能安全、以太网解决方案、实时系统和复杂的软件集成

!![[新石器]]

新石器是一家物流领域的自动驾驶公司

!![[好好开车]]

好好开车是一个汽车智能安全研发商,跨界融合移动互联网、智能驾驶、智能交通及汽车大数据,倾力打造智能安全车联网与汽车大数据云平台


!![[智加科技]]

智加科技是一家从事无人车及人工智能相关领域研究的公司,以实现自动驾驶技术的核心突破,是少数几家拥有美国加州自动驾驶测试牌照的创业企业之一,公司和产业链上下游建立了深厚的合作关系

!![[Embark]]

Embark是一家自动驾驶汽车研发商。研发了自动驾驶系统 Embark AI,优势在于能够在眩光、雾霾和夜晚等极端条件下做出智能判断,帮助卡车更安全的行驶

!![[极目智能]]

极目智能是一家从事ADAS高级辅助驾驶系统的研发和销售的高科技企业,基于自主计算机视觉和图像处理算法推出一系列国产化专业性的驾驶辅助产品,通过提前预警来减少交通事故,提升驾驶安全,改善驾驶员的驾驶习惯


!![[Perceptive Automata]]

Perceptive Automata是一家美国自动驾驶技术提供商,通过主观判断的信息搜集和处理来提供用于训练算法的数据,运用机器学习技术帮助无人驾驶汽车预测路人行为,提升驾驶的安全性


!![[清智科技]]

清智科技是一家商用车自动驾驶提供商,专注于驾驶辅助系统(ADAS)前装供应商和特定场景自动驾驶解决方案提供商,致力于提供商用车软硬结合的AEB解决方案



!![[乐骋汽车科技]]

乐骋汽车科技是一家ADAS辅助驾驶科技公司,主要面向量产的自动驾驶控制器研发,以及嵌入其内的传感器数据融合、决策及控制算法开发


!![[图森未来]]

一家专注于自动驾驶货运卡车技术研发与应用的人工智能创业企业。公司成立于2015年9月,在中国的北京市、河北省唐山市,美国加州圣迭戈市、亚利桑那州图森市等多地设有研发中心,核心技术团队来自加州理工学院





!![[AImotive]]

AImotive是一家无人驾驶汽车人工智能技术开发商,拥有人工智能、计算机视觉和导航技术的实践经验,为嵌入式平台和GPU提供优化的解决方案。独立自主开发的功能有车道识别、移动物体识别和物体分类等


!![[慧眼驾车]]

运用计算机视觉、模式识别、机器学习、人工智能等技术,在车辆行驶过程中全程帮助驾驶员的主动安全辅助系统,提供包括车道偏移预警、前向碰撞预警、行人检测、车距监测、自动大灯控制等功能

!![[天行健车联网]]

天行健车联网是一家重载移动服务综合解决方案提供商,专注于通过车载智能终端、管理平台帮助用户实现对车辆的远程监控、检测、定位和管理



!![[智车优行]]

智车优行是一家用互联网思维造车的科技公司,致力于打造全新的移动互联网智能新能源汽车

!![[思建科技]]

思建科技是一家车联网领域技术研究与互联网运营服务提供商,公司同时是一家技术创新、实力雄厚、并拥有完全自主知识产权的高科技企业。公司拥有完整的车联网系统解决方案,可以为各类客户提供车联网智能硬件终端


!![[信车科技]]

信车科技是一家致力于为移动出行提供基于AR和全景EPD显示的创新交互方式的企业。专注于增强现实光学技术、新材料科学技术、通讯电子、汽车电子和内容软件的研究与设计。拥有先进的智能车辆信息系统、增强现实平视显示



!![[暖暖科技]]

暖暖科技是一家服务于车行业的企业,主要业务为智能停车项目的开发,及生活服务和信息服务于一体,致力于拓展汽车后服务市场


!![[卡客途安]]

卡客途安是一家商用车轮胎生命周期与智能挂车管理公司,基于物联网感知硬件与人工智能算法的结合,使轮胎与挂车(车辆)行驶全程可视,实现智能维保管理与调度行驶。实现车辆的降本与增效


!![[贝特威自动化]]

贝特威自动化设备(上海)有限公司是一家专注于自动化装配与检测技术的公司,致力于为汽车和汽车零部件、电子、电器行业提供定制化的自动化装配和视觉检测解决方案


!![[滴滴优点]]

一家专业从事交通领域人工智能应用的科技公司。滴滴优点科技积极探索新能源车及充电设施的管理、运营、规划调度和应用


!![[双髻鲨科技]]

双髻鲨是一个智能行车系统,基于仿生学研发的“碰撞预警”和“盲区辅助”,可以帮助车主实现智能安全行车,隶属于北京双髻鲨科技有限公司

!![[极豆车联网]]

成立于 2014年10月,是一家专注于车联网软硬件全方位服务的创新科技企业。
团队由来自PPTV、小米、博泰等互联网、汽车前装领域的小伙伴组成,提供软件+硬件+云端完整的解决方案


!![[捷崇科技]]

捷崇科技是一家专业从事人工智能领域技术及产品研发的高科技企业。企业提供车辆外廓尺寸测量系统、公路交通信息调查设备、道口车辆智能检测系统、车辆全信息智能采集系统,隶属于上海捷崇科技有限公司

!![[博派通达科技]]

博派通达科技是一家硬件公司,专注与移动互联网与智能硬件方向。我们将致力于改造传统汽车行业,开启车联网这片蓝海,让汽车更加智能。同时涉及互联网保险相关的产品


!![[数安智能]]

数安智能致力于人工智能应用落地、解决传统监控安防问题。公司第一款产品为“客安邦”平台,基于现有车载监控终端数据,运用人工智能技术建立违章行为识别模型,实现对客运车辆在营运过程中实时识别告警

!![[泓源汽车]]

泓源汽车是一家覆盖纯电动汽车全产业链的集团公司,以自主的电池和控制器技术开发生产为核心,致力于推动传统汽车行业从产业链构成、生产销售模式直至利益分配格局的立体变革


!![[联车科技]]

联车科技是一家车联网技术公司,主打产品为A-cube联车魔方设备,可以通过App界面直观的知晓爱车的每刻状态、同时还有更多服模块,联车(上海)信息科技有限公司旗下



!![[May Mobility]]

May Mobility是一家美国自动驾驶技术研发商,自主研发了一款微型电动巴士,可以在既定线路上安装传感器,并且在汽车车身贴上可以读取信号的“贴纸”,帮助自动驾驶汽车更好的了解周围的环境,并且能够在恶劣的天气下安全

!![[Aurora]]

Aurora是一家自动驾驶技术研发商,致力于严谨的工程和应用机器学习,以解决目前这一代人面临的最具挑战性的自动驾驶方式。Aurora由世界三大自动驾驶汽车行业领导者设计的软件和硬件将为下一次运输革命提供动力


!![[Voyage]]

Voyage是一家自动驾驶汽车出行服务公司,致力于改装目前已大规模量产的车型来创建一个自动驾驶出租车队,为人们提供出行服务,而非自主研发和销售自动驾驶汽车,已经拿到了部署自动驾驶车队的许可证


!![[Momenta]]

Momenta致力于打造自动驾驶大脑;提供基于深度学习的环境感知、高精度地图、驾驶决策算法;产品包括不同级别的自动驾驶方案,以及衍生出的大数据服务;团队源自清华大学和微软亚洲研究院,具有深厚的技术积累和极强的


!![[领骏科技]]

领骏科技是一家自动驾驶技术研发商。公司致力于自动驾驶系统设计、开发、和测试经验,以及传感器融合、行车智能决策、轨迹规划控制等,公司利用计算机仿真技术,应用于感知系统及端到端系统的开发



!![[Starsky Robotics]]

Starsky Robotics是一家美国自动驾驶卡车研发商。主要面向短途的高速公路路段运输


!![[Kodiak Robotics]]

Kodiak Robotics是一个美国长途货运自动驾驶技术提供商,使用了被称为LiDAR的光探测和测距雷达系统以及相机和声纳技术,专注于为长途货运卡车提供自动驾驶解决方案,帮助提升运输效率和安全性


!![[小马智行]]

小马智行科技是一家自动驾驶解决方案提供商。致力于为机器人创建人工智能,主要产品为Pony.ai,是基于雷达、光学雷达、GPS及电脑视觉等技术感测其环境,达到自动驾驶目的


!![[智眸科技]]

智眸科技是一家专注于智能双目相机的科技公司,旗下产品智能双目相机主要应用于汽车高级辅助驾驶和自动驾驶、高精地图、机器人、无人机等市场,提供智能双目芯片及完整方案提供商


!![[清研微视]]

清研微视是一家专注于汽车智能安全技术和车联网技术的创新型企业。公司聚焦车载机器视觉、行车参数实时获取与动态分析、多功能辅助驾驶、智能化决策、远程信息处理与监控平台等核心技术的应用研究与产品开发。公司主



!![[苏州智华]]

苏州智华是一家专注于汽车智能驾驶辅助系统的研发和生产。公司以特有的图像传感和智能识别处理技术为核心,成功开发出车道偏离报警系统、前向碰撞预警系统、全景影像系统、倒车影像辅助等多个汽车智能安全驾驶系统。


!![[云感科技]]

厦门云感科技是一家汽车驾驶辅助技术(ADAS)公司,致力于为汽车电子、汽车零部件厂商提供3D全景环视、车道偏离等ADAS软硬件技术方案


!![[主线科技]]

主线科技是一家无人驾驶技术研发商,公司推出了纯电动无人驾驶专用研发平台,并依托科技部无人车测试评价、测试场构建等,提供研发与支持。同时公司还研发无人化技术,将其运用于工业操作中



!![[开易科技]]

开易科技致力于通过图像识别、机器学习和人工智能技术,为汽车提供高精确度的辅助驾驶安全算法。我们不但着眼于前装ADAS算法,还专门为后装市场设计了算法模型,为车载智能硬件提供ADAS SDK,在各种硬件平台上实现准确的


!![[中科慧眼]]

北京中科慧眼科技有限公司成立于 2014 年 10 月,致力于自动驾驶系统及相关产品的研发与制造。公司拥有多项关于立体视觉测量、自适应校准、双目视觉标定、低光视频增强、软件实时防抖等技术专利及软件著作权


!![[天隼图像]]

天隼图像是一家专注于智能监控设备和模式识别算法的技术服务商,根据应用型客户的实际要求,进行从硬件到软件的全套图像处理集成系统,目前主要应用在小型无人驾驶电动汽车

!![[HoloMatic禾多科技]]

HoloMatic是一家从事自动驾驶前沿领域开发的初创公司,致力于打造基于前沿人工智能技术和汽车工业技术的自动驾驶解决方案,目前将提供 L3.5 自动驾驶解决方案。禾多科技(北京)有限公司旗下产品



!![[智驾科技Maxieye]]

智驾科技Maxieye是一家专业从事汽车高级辅助驾驶ADAS产品与自动驾驶系统开发的高科技公司,核心ADAS产品有:车道偏离报警LDW、车道保持LKA、前车碰撞预警FCW、行人碰撞预警PCW、自主紧急制动AEB、智能远近光切换IHBC,自适应大


!![[车智佳]]

车智佳是一个 ADAS 解决方案提供商,车智佳的ADAS解决方案包括的功能有车道偏移预警、360°车辆识别、驾驶员状态识别、前车碰撞预警、跟车时间监测等


!![[前向启创]]

前向启创是一家车载高级驾驶辅助系统产品研发公司,专业提供车载ADAS解决方案





!![[蓝卡科技]]

管理系统研发商,旗下研发出AI云无人值守停车场、AI人工智能无人值守停车场管理系统及LCD屏的高速车牌识别道闸一体机,通过对停车场车辆进出图片特征,可以实现对车牌、车灯、车标、驾驶员等特征识别,通过扫码付等



!![[腾视科技]]

腾视科技是一家从事基于视觉分析的汽车安全驾驶辅助系统和安全布控系统研发的高科技公司。公司研发出疲劳驾驶预警系统和安全布控系统,产品整体性能达到国际先进水平。可为用户提供车载疲劳驾驶预警产品及系统级解决



!![[行易道]]

行易道是一家从事智能汽车及飞行器智能技术的研发、生产、销售公司,产品有智能驾驶、智能飞行辅助系统等


!![[比歪尔科技]]

比歪尔科技是一个专注打造汽车驾驶安全的产品和品牌。致力于用计算机视觉,雷达处理技术及传感器融合来探测驾驶过程中的危险,同时针对开车过程中玩手机分散注意力的带来的危险,有自己的想法和解决方案


!![[纵目科技]]

纵目科技(ZongMu Technology)成立于2013年1月,总部和研发中心位于上海浦东张江高科,在北京和厦门分别设有自动驾驶分公司和传感器研发中心。依托领先的核心研发能力,并在上海及厦门拥有配备前装体系标准的工厂,几年时间已成为智能驾驶系统一级供应商,跻身成为中国智能驾驶系统前装市场的领导者。

       2016年,纵目科技在北京成立自动驾驶公司,致力于L4级别自动驾驶系统的研发。结合人工智能和深度学习算法,与高通等芯片原厂建立深度合作,以低成本、可量产的方案推动低速自动驾驶的场景落地。

       2017年11月,纵目科技发布低速L4自动驾驶——自主泊车产品,以“车+AI”作为导向,将自主泊车产品与队列技术、无线充电、预约车位、室内定位等技术融合,致力于打造出一套切实可行的智慧出行整体解决方案,进一步夯实纵目科技从环视ADAS向自动驾驶技术路线升级转型的信心与决心。

http://www.zongmutech.com/


!![[安智汽车]]

安智汽车是一家立足驾驶员辅助系统及相关主动安全系统领域,业务聚焦于系统整体方案的设计与研发,进行多功能摄像头与雷达系统的量产级产品提供。为自主品牌汽车提供适应国内交通路况及驾驶员特性的“本地化”产品

!![[欧百拓]]

欧百拓是一家技术开发公司,产品与服务主要包括无人驾驶专用激光雷达,无人驾驶项目咨询、技术服务;智能3D内景扫描构建、室内导航与定位等


!![[eyesee易见联]]

易见联是一家专注于计算机视觉分析、ADAS高级辅助驾驶和人工智能核心技术的公司,提供包括智能后视镜、车载台式显示终端、HUD显示终端、互联网+汽车解决方案在内的众多智能汽车产品



!![[有光图像科技]]

深圳有光图像科技是一家工业机器人及无人驾驶技术服务商,致力于给机器人装上眼睛,让机器人拥有人的视觉



!![[Waymo]]

Waymo是一家汽车自动驾驶技术研发商,提供无人驾驶技术解决方案与相关汽车产品,基于Google实验室开发的软件和传感器技术,自动驾驶汽车已经覆盖了几乎所有极端天气环境下的测试



!![[火花无人巴士]]

火花无人巴士是一家无人驾驶巴士研发商,基于车载传感器智能规划行车路线,具备感知道路、精准定位和智能避障功能,能在封闭和半开放环境中运输乘客,可应用于城市公交线路、景区观光巴士、机场高铁摆渡等场景



!![[星舆科技]]

致力于为下一代移动互联网及自动驾驶、无人机和机器人等人工智能设备,提供室内外一体化的高精度空间位置信息服务以及端到端的高精度解决方案,成为人工智能时代精准时空运营商


!![[汇生聚成]]

汇生聚成是一家专注于人工智能领域的产品研发、生产的高新科技企业,主打产品疲劳感应戒指——“MICROFEEL”。该产品以“硬件+软件+互联网”的运行模式,为交通工具驾驶者提供精准高效的疲劳驾驶提醒服务


!![[Neurala]]

Neurala 是一家人工智能初创公司,致力于提供适用于所有智能设备、机器人、无人机、无人驾驶汽车和玩具的软件解决方案,帮助智能机器学习周围环境,并和周边环境进行互动


!![[中新智擎]]

中新智擎是一家人工智能技术研究与开发的前沿科技公司。主要从事无人驾驶技术领域及人形智能机器人技术的研究、开发、设计与生产工作。致力于整合前沿的人工智能领域和高尖智能技术资源,建立全球协同研发平台


!![[驭势科技]]

驭势科技(驾驭趋势科技)是一家为汽车品牌提供无人驾驶解决方案的公司,致力于打造汽车界的“Intel Inside”


!![[YOGO机器人]]

YOGO机器人是一家商用服务机器人开发公司,主要提供酒店、商场、餐饮、4S店等场所的服务机器人,同时提供独立的视觉导航模块、低价小微型激光导航模块和特种车辆的无人驾驶系统


!![[通甲优博]]

成都通甲优博科技是一家融合互联网技术+计算机视觉技术的科技公司,产品有driving+驾驶行为分析系统、glasses+虚拟眼镜试戴系统、UAV+无人机跟踪与稳像系统等


!![[极限元]]

极限元是一家人工智能技术公司,挖掘各个行业领域的智能技术需求,推出了一系列智能技术解决方案,包括智能设备人机交互解决方案、三维虚拟听觉设备、行车疲劳驾驶监测系统等

!![[灏泷智能]]

灏泷智能科技(上海)有限公司是一家生物模式识别、人像识别技术服务商,产品有DSD防瞌睡疲劳驾驶预警方案、DSD行车安全电脑等
!![[机驭智能]]

机驭智能是一家无人驾驶技术的开发团队,以北美技术中心为原点,瞄准硅谷最新技术,依靠中国市场,专注无人车控制、人工智能、机器学习、AR/VR(虚拟现实)等

!![[维森传感]]

维森传感是一家车载主动安全方案提供商,此公司主要从事车载安全感知系统、智能交通系统及摄像模组的的开发、生产及销售并提供技术服务。其技术可实现疲劳驾驶预警、侧视盲点监测、夜视行人检测等功能

!![[宝天智控]]

宝天智控是一家专注于特种智能无人驾驶飞行器的公司。为客户提供特种智能空中机器人及其行业解决方案
!![[KnowRe]]

KnowRe 成立于2012年,是一家自适应在线教育服务平台,主要是通过游戏化的机制为学生提供个性化的中学数学课程辅导


!![[敏特教育]]

北京敏特昭阳科技是一家主打K12阶段的教育产品研发、销售和服务提供商,拥有两大王牌产品: "敏特英语个性化网络学习系统" 和"敏特数学互动反馈系统"

!![[英语流利说]]

!![[松鼠教育]]

!![[7EDU]]

7EDU是一家创新K12在线教育公司,一共有三种服务:小班教学、一对一和 VIP 定制成长服务,专注于通过自适应性教学(Adaptive Teaching)的方式,为美国K12学生量身订制教育辅导规划


!![[CC英语]]

CC英语成立于1995年,旗下产品主要为CIVA微课机器人,包括口语机器人、学习机器人、中考机器人、高考机器人和测试机器人等五款App。隶属于贵州西西沃教育科技股份有限公司

!![[悉之教育]]

悉之教育是一家在线12k教育服务平台,致力于研发K12领域的陪伴式AI教师产品,是拥有国内首个基于知识图谱和自动推理的自适应学习平台,以教育学和认知科学理论为基础,用AI关心每一位学生的发展


!![[小知科技]]

杭州小知科技是一家基于人工智能的学习平台,致力于打造全场景帮助用户连结世界和未来的智能产品,以及提供所需要的人工智能技术和服务,主打产品为人工智能教育平台“小吱”


!![[作业盒子]]

作业盒子是一款基于大数据的智能题库产品,分为教师端与学生端,可在上面进行智能出题、多形式批注、学习效果的数据统计与图谱搭建,根据学习状况获得针对性智能推荐等等。北京知识印象科技有限公司旗下产品

!![[高木学习]]

高木学习是一家人工智能教育引擎及平台提供商,致力于提升人类知识学习的效率。现阶段聚焦于K12阶段,打造AI Tutor辅助学生学习,为学生全局优化其学习路径,培养学生元认知能力。
人工智能的飞速发展将对身处服务价值链高端的金融业带来深刻影响,人工智能逐步成为决定金融业沟通客户、发现客户金融需求的重要因素。

人工智能技术在金融业中可以用于服务客户,支持授信、各类金融交易和金融分析中的决策, 并用于风险防控和监督,将大幅改变金融现有格局,金融服务将会更加地个性化与智能化。

智能金融对于金融机构的业务部门来说,可以帮助获客,精准服务客户,提高效率;对于金融机构的风控部门来说,可以提高风险控制,增加安全性; 对于用户来说,可以实现资产优化配置,体验到金融机构更加完美地服务。

人工智能在金融领域的应用主要包括:

智能获客,依托大数据,对金融用户进行画像, 通过需求响应模型,极大地提升获客效率;身份识别,以人工智能为内核,通过人脸识别、声纹识别、指静脉识别等生物识别手段,再加上各类票据、身份证、银行卡等证件票据的 OCR 识别等技术手段,对用户身份进行验证,大幅降低核验成本,有助于提高安全性;大数据风控,通过大数据、算力、算法的结合,搭建反欺诈、信用风险等模型,多维度控制金融机构的信用风险和操作风险,同时避免资产损失;智能投顾,基于大数据和算法能力,对用户与资产信息进行标签化,精准匹配用户与资产;

智能客服,基于自然语言处理能力和语音识别能力, 拓展客服领域的深度和广度,大幅降低服务成本,提升服务体验;金融云,依托云计算能力的金融科技,为金融机构提供更安全高效的全套金融解决方案。

!!智能金融:

!![[Context Relevant]]

美国  数据挖掘、预测分析   本地分析软件和云服务  五轮融资 4430 万美元   

!![[中智诚]]

中智诚是一个反欺诈云平台,致力于为用户提供申请反欺诈、全国公民身份信息认证、个人征信评分、征信监控四项服务

!![[Kensho Technologies]]	

美国	机器学习、自然语言处理、数据挖掘	金融分析辅助决策系统	两轮 5780 万美元	

!![[ZestFinance]]	

美国	数据挖掘、机器学习	信用服务	四轮共 1.12 亿美元	

!![[Aire]]	

英国	信用评级	金融产品的信用评级	四轮共 700 万美元	

!![[高盛]]	

美国	数据挖掘、机器学习	AppBank 、金融业务自动化	市值约 678 亿美元	



!![[信数金服]]

成立于2015年5月,是中国领先的大数据人工智能解决方案提供商。信数金服提供的产品和服务包括新一代智能决策引擎、大数据征信服务和企业级的数据管理平台,以及针对多场景的人工智能解决方案



!![[蚂蚁金服]]	

中国	人工智能、数据挖掘	智能助理、信用评级和风险管理等应用	估值约 600 亿美元

!![[思既美智能科技]]

思既美智能科技专注人工智能金融市场专家系统的研发、运营与推广,基于大数据和深度学习的金融市场智能体集群,为市场各种参与者提供专业化投资、评测、对冲、风控等全方位服务。苏州思即美智能科技有限公司




!![[量子沙盘]]

量子沙盘是一家金融投资与核心决策数据提供商,将人工智能和大数据分析技术应用到C端场景的全球各类金融交易中,实时帮助客户建立决策优势和提供人工智能金融投资整体解决方案


!![[股市小秘书]]

股市小秘书是一家与金融有关的人工智能科技公司,机器人可以帮助用户选股或查询相关数据和资讯。隶属于上海搬矿科技有限公司


!![[图灵金融]]

图灵金融是一家主打智能投资的金融科技公司,用大数据和人工智能的分析提供优异的金融服务,为大众投资者提供一站式全面的理财投资服务平台


!![[氪信科技]]

非或然引擎(氪信CreditX)是一个用大数据提供金融风控服务的科技公司,旗下产品CreditX为国内大型银行、物流金融、普惠金融公司搭建了大数据风险定价和控制系统,支持千亿级信贷资产


!![[清数D-LAB]]

清数D-LAB,是一个大数据创新创业平台,专注人工智能和数据分析等大数据技术,致力于用数据系统帮助创业者为大数据项目找到资金,帮助投资者合理利用大数据等


!![[Skyline AI]]

Skyline AI成立于2017年,总部位于以色列特拉维夫。公司预测未来房地产价值,并分析房地产市场,帮助投资者做出重要决策,例如何时筹集租金、翻新或出售


!![[Douugh]]

Douugh是一个人工智能理财助手应用,开发了一款智能虚拟助手小精灵“Sophie”来帮助用户实现财富管理,并且打造成为用户的财务控制中心



!![[一同保]]

一同保是一家保险服务提供商,依托“人工智能”、“大数据”、和“区块链”等技术手段,提供“社保+商保+互助计划”的商业模式,专注于为企业和 个人提供社保服务和定制化的商业保险服务


!![[Insurify]]

Insurify是 一家人工智能车险代理平台,只要将车牌照片发送至该平台,就能为你找到最佳的车险,还能帮你免去繁琐的“电话咨询”环节


!![[NiceMind]]

金融解决方案提供商,通过利用深度神经网络技术开发了人工智能大脑系统,该系统在学习股票相关数据的基础上,通过实时数据进行盘中及尾盘的运算,提供适宜的投资策略。致力于为用户提供金融产品及衍生品策略的全方位


!![[爱智慧科技]]

爱智慧科技是一个专注于金融领域的人工智能解决方案提供商,致力于面向金融机构客户,做金融分析问答,基于可扩展知识图谱的问答与查询系统为核心提供服务;面向大众用户,延伸B端技术打造智能投顾和大众量化交易策

!![[文因互联]]

文因互联是国内领先的金融人工智能技术与服务提供商。我们用国际先进的知识图谱技术,对金融数据进行结构化提取和智能化分析,帮助金融从业者提升工作效率,创造更多价值。产品及解决方案介绍:我们提供自动化公告摘



!![[融悦和科技]]

预计在2020年实现AI人工智能产品针对所有金融交易衍生品的商用


!![[一刻科技]]

五点一刻是一家金融科技公司,专注于自主研发以人工智能为核心的新金融技术,服务普惠金融。依托数据挖掘和机器学习技术,利用大数据消除信息不对称,为目标客户提供信用评估及融资服务,满足短期紧急的资金需求


!![[鼎复数据]]

鼎复数据是一家企业服务公司,提供金融大数据企业级应用服务,运用先进的计算机和大数据技术,为各类金融投资机构提供高效、便捷、专业的金融分析平台,帮助客户进行快速研究与决策


!![[阿法金融]]

阿法金融是一家智能投顾服务提供商,基于人工智能及大数据技术,为投资者免费提供智能预测、智能选股、智能搜索等服务,同时提供互联网财经资讯等信息



!![[香侬科技]]

香侬科技是一家AI金融投资信息服务商,公司从非结构化数据中提取金融相关问题的答案,既能满足专业投资者对于数据挖掘整合处理的需求,也能弥补中小投资者在信息检索上的劣势


!![[向上360]]

向上360是一家互联网金融理财服务供应商,为理财客户自动配置及推荐债权等产品、全自动协议生成及自动效验等。隶属于北京证大向上网络科技有限公司


!![[圣一]]

圣一是一家提供解决方案和技术服务的技术型公司,主要是提供提供自动化智能运维平台、应用性能管理和基于大数据的安全审计等专业解决方案,合作伙伴有银行、保险、金融交易中心和大型企业




!![[汇生网络]]

汇生网络是一家移动互联网服务商,专业从事应用系统开发、运作和维护以及信息安全服务,专注于金融科技、人工智能、通信教育等相关行业信息化领域


!![[心流慧估]]

心流慧估是一家运用互联网、大数据和人工智能技术为企业提供估值、咨询和投资的金融科技公司。心流慧估是国内第一家由资深经济专家、估值专家、大数据人工智能专家组成,专注于用科技手段为企业估值、增值的金融科技


!![[慧安金科]]

慧安金科是一家人工智能金融风控和反欺诈技术提供商,其主动式半监督机器学习在客户的大数据上推出了一套完整的识别欺诈、风险和威胁的标准。 公司使用人工智能方案,提炼大数据价值,构建反欺诈体系,服务于大规模


!![[九方宽客]]

在经济和金融领域开展人工智能全球宏观与资产配置投研和投顾等产品的开发。九方宽客人工智能产品聚焦于量化全球宏观与产业链模型驱动的细分市场领域,构建自动化宏观分析与预测模型,



!![[星桥数据]]

星桥数据是一个大数据金融风控征信平台,专注于大数据自动化采集、转换、存储等,利用大数据搜索、数据建模、精准画像、人工智能以及机器学习等技术,为用户提供一体化的大数据金融服务


!![[柠檬科技]]

柠檬科技注于成为消费金融领域大数据风控技术&综合解决方案的提供商,借助SaaS金融服务云平台、分布式爬虫和数据联盟拥有的海量数据,利用模型平均、数据降维、知识图谱等方法,通过机器学习优化和集成应用,对个人消


!![[LongFin Corp]]

LongFin Corp是一家美国中小企业外汇及融资服务提供商,通过人工智能和机器学习提供支持,为全球进口商、出口商、中小企业提供金融和外汇对冲解决方案,公司还提供基于加密货币的金融服务


!![[燕致科技深圳分公司]]

燕致科技深圳分公司,是一家高科技网络信息服务公司。公司致力于用金融科技革新证券服务业,通过大数据、人工智能提升证券服务各环节的效率,为普通投资者、专业投资者以及机构投资者提供更精准、更高效的证券服务


!![[ChinaScope数库]]

ChinaScope数库是一家专注于中国的金融数据、信息及分析服务商,包含企业财务数据、行业与宏观数据、财经新闻与公告,以及一级投资市场交易等信息。数库(上海)科技有限公司旗下


!![[视野金服]]

视野金融是一家专注服务于股权投资领域,面向多层次资本市场的大数据金融信息服务商,利用机器学习及人工智能,研究挖掘投资价值,服务股权投资人士应用场景,旗下有新兴视野app、股票视野app等


!![[排列科技]]

排列科技是一家专注于解决大数据金融风险管理的互联网金融科技公司,致力于数据平台和数据分析建模、信用风险、机器学习、社交网络、大型软件研发等方面的研究



!![[上海硅基智能]]

硅基智能是一家利用人工智能对金融市场进行分析,隶属于上海硅基智能科技有限公司


!![[冰鉴科技]]

冰鉴科技是一家基于机器学习和人工智能的第三方独立征信平台,总部位于上海,在北京、深圳、南京、常州、成都、洛杉矶设有分支机构。目前,冰鉴拥有数百家国内外付费客户,并和银联、什马金融、网易小贷、台州银行、



!![[懿衡信息]]

懿衡信息是一家致力于从事大数据与人工智能在金融数据服务领域的应用的公司,通过自然语言处理、知识图谱和机器学习技术,提高金融市场各参与主体在价值发现与风险管理方面的有效性,提供高效、便捷、专业的数据智能



!![[量科邦]]

量科邦是一家金融大数据公司,为金融机构等提供数据、风险控制和增值服务等,隶属于北京量科邦信息技术有限公司


!![[量化派Quant Group]]

量化派(Quant Group)是一家金融大数据公司,通过基于机器学习和互联网化的风险定价,整合互联网及传统数据源,帮助个人及小微企业证明经济财务等状况,从而快速获得低成本贷款,实现低息快速融资的大众普惠金融


!![[iquant]]

iquant是一个基于人工智能的一站式量化交易平台,平台覆盖全球多类交易标的,如国内的期货,海外的股票、期货、期权、外汇等,同时提供开放的社区和在线教育服务,致力于为普通投资者和专业交易者提供简单、高效的金融解决方案

!![[天数润科]]

天数润科是一家专注于智能计算领域的人工智能公司,致力于为所有面对海量数据分析挑战的企业,提供一个超高性能的智能计算平台和针对 “医疗影像智能识别、金融量化分析与交易、智能制造” 三大领域的人工智能分析系统


!![[快雨]]

快雨是人工智能驱动的交易信息服务,包括网站和APP,专注于观察沪深市场全部股票,实时输出全部异动,及时推送金融市场重大资讯、公告、统计数据,隶属于上海时来信息科技有限公司



!![[海鲸金融]]

海鲸金融(Whale Finance)是一家专注于海外投资的创新型金融投资集团。海鲸金融具有华尔街对冲基金管理团队及金融高科技算法团队,利用量化投资策略,为投资者提供专业便捷的、一站式全球化资产配置服务。海鲸金融在北


!![[高风金融]]

高风金融是一个第三方大数据风控服务提供商。运用大数据和社交关系链技术,为资信良好、处于成长期的优质客户提供中、短期债务融资服务,并提供数据、反欺诈及违约概率报告等服务


!![[红移科技]]

红移科技是一家供应链金融优化服务商,专注于探索金融与技术的融合,致力于通过云计算、大数据、人工智能等技术改善中小企业融资难的问题,优化供应链上下游游企业间的资金链


!![[灵智优诺]]

灵智优诺是一家将人工智能技术应用在保险服务和财富管理领域的科技公司,致力于为中高端人群提供最优的金融服务,目前主打保险决策工具,通过对不同保险公司以及不同的保险产品的深度分析比较,帮助您选择适合自己的


!![[琥珀纷钛]]

金融科技公司,为银行等金融机构提供基于大数据、人工智能和区块链技术的智能信贷解决方案,结合房产金融和消费金融场景,提升金融机构效率,助力金融机构开展新型普惠金融业务,隶属于北京琥珀纷钛科技有限公司



!![[贝邑金融]]

贝邑金融是一家致力于推动消费和金融行业实现移动化、人工智能化的公司,基于人工智能大数据分析、云计算和移动互联网,通过多场景在线营销获客、大数据智能信审风控、全流程IT系统解决方案为核心的服务体系,帮助客



!![[极智金融云]]

将人工智能与金融结合的数据处理系统,向二级市场投资者提供投资工具及风险关系系统,通过机器学习技术构建高精准度与高智能程度的算法平台,帮助机构充分发掘金融



!![[云量科技]]

云量科技是专注于量化交易、量化策略、互联网证券、互联网金融的科技型企业,公司主要从事量化投资策略开发、交易算法设计、投资咨询、移动互联网(投资类)应用开发等业务。团队由资深投资顾问、数理专家和IT精英组


!![[Linkface今始科技]]

Linkface是一家将人工智能用于金融领域的科技公司,专注深度学习技术和计算机视觉研究,为金融行业提供身份验证、大数据反欺诈等多场景综合解决方案,帮助客户打造更安全、更高效、更智能的金融体验。北京今始科技有限




!![[Feedzai]]

Feedzai是一家支付防诈骗解决方案提供商,专注于利用人工智能的风险管理平台并结合金融大数据,通过分析用户行为,交易数据以及个人和企业信用评级,帮助用户分析识别欺诈交易,致力于打造出通用解决方案的同时,又为



!![[BigQuant]]

BigQuant是一家专注量化投资的企业,企业将人工智能技术应用于投资领域,通过机器学习等人工智能技术,实现人工智能量化投资,提升投资效率,同时为用户提供新型的量化大数据和智能技术服务,让用户可以无门槛的使用人





!![[郡森]]

郡森是一家致力于拓展创新型金融信息平台与服务的公司,为国内外银行等金融机构提供IT综合服务,为客户提供了金融、政府、制造业、运输物流等行业服务与解决方案,隶属于斐森信息科技(上海)有限公司


!![[Previse]]

Previse是英国一家智能票据即时支付商,基于人工智能技术的票据即时支付解决方案,帮助大型公司和中小企业快速获得票据兑付,拿到资金。一旦票据发现之后,Previse 会利用先进的人工智能和数十亿个数据点来评估企业买方购


!![[墨智科技]]

墨智科技是一家移动互联网服务商,融合大数据处理、人工智能、机器学习和金融风控模型研究,提供数据仓储,数据可视化和信用评级等服务


!![[因果树]]

因果树依托平台大数据,通过人工智能技术和创新金融产品引领国内股权市场的发展。2016年,因果树推出了全球首个人工智能投资机器人,实现了由人工投资到人工智能投资的转变


!![[虎博科技]]

虎博科技是一家人工智能金融信息搜索引擎研发商,致力于打造新一代的人工智能金融信息搜索引擎。虎博科技通过深度学习、自然语言处理等技术,提供一问一答、一键秒回的金融信息智能搜索,以及精准、实时的金融信息智


!![[量量新闻]]

量量新闻是一家金融资讯领域的人工智能公司,致力于打造7×24小时工作的阅读机器人,推测新闻背后的上市公司,基于AI对财经类研报与新闻做大量的学习与模拟,从而让机器拥有将“资讯”与“股票”做关联性匹配的能力


!![[极兆技术infinibase]]

极兆技术是一家致力于用大数据和人工智能技术助力金融行业进步的公司,提供的技术包括机器学习技术、极速大数据处理、实时数据采集



!![[青椒科技]]

青椒科技是一家提供金融智能资讯的公司。公司运用机器学习、数据挖掘、自然语言处理等技术处理研报、新闻、舆情等二级市场投资言论及观点,对发言人的历史观点做回测,进行量化评级,为普通、专业投资者筛取优质专业

!![[跬盈智能]]

跬盈智能是一家研究人工智能在金融领域实际应用的公司。致力于投资模型的不断优化,通过机器学习给广大投资者提供专业级的智能投顾服务



!![[纷信]]

国内领先使用人工智能风控系统的践行者


!![[沃德股市气象站]]

沃德股市气象站是一家利用人工智能技术对市场进行分析的投顾平台,公司通过独有的计算模型,对市场的情绪表达用量化的方式进行计算,然后通过情绪数据和行情数据的智能融合,发现合乎市场投资理念的买卖点



!![[能可网络]]

能可网络是一家专注于人工智能在金融领域应用的公司。以实现个人、家庭、社会财富保值增值为己任,以最新的信息技术、智慧的金融理念为依靠,专注于给大众提供安全、稳健、高效的金融理财产品

!![[MindBridge]]

MindBridge是一家金融领域人工智能服务商,公司旗舰产品是AI Auditor,可以审查会计师的数据并确定应该审计的条目。截至2018年5月公司在六个国家拥有超过125个用户

!![[Brain Investing]]

Brain是一家人工智能驱动的金融科技公司,专注于通过全自动化地创造交易策略帮助机构用户获得稳定回报。公司使用AI引擎低成本产生大量优秀的交易信号和动态自适应市场的策略,开放、公平、透明的服务所有客户



!![[蘑菇智能]]

为证券公司、保险公司提供私募基金大数据系统服务,人工智能+FOF基金组合,以及基于区块链的FOF私募基金管理平台,并提供专业投资所需的商业软件设计、研发、销售以及专业咨询服务




!![[智道金服]]

智道金服是国内最早为机构客户提供智能资产配置解决方案的金融科技企业。智道金服以大数据为依托、以人工智能为手段,帮助客户降低投研成本、提高投资效率、提升投资业绩


!![[金程科技]]

金程科技是一家专注于智慧领域,提供软件研发、智慧金融、智能化解决方案的信息系统集成商,开创了集软件研发、智能建筑、智慧安防等行业共同互补的复合式发展模式



!![[金节点数据]]

金节点数据是一家金融行业自然语言处理解决方案提供商,以促进数据价值交换为核心,专注为金融客户提供大数据商业智能服务,隶属于北京瑞景汇科技有限公司

!![[天启智创]]

天启智创是一家人工智能算法、风控数据服务、决策引擎系统为核心技术的互联网大数据公司,专注于服务金融中信贷或保险行业客户,为客户解决营销、智能化决策系统、风险模型策略和数据服务,其产品有数据模型服务、风...]]


!![[Flinks]]

致力于推动银行数据公开化、帮助金融科技企业建立人工智能流程数据系统。旗下研发的Flinks Score可以预测用户的信誉,将贷款支付与现金流情况联系起来,帮助计算偿还贷款的方法以及支付方案


!![[潘帕斯]]

潘帕斯是一家以大数据、人工智能服务为主的新金融技术服务公司,公司面向企业和机构提供基于全球资产配置的财富管理产品和金融大数据解决方案,旗下产品涵盖财富管理、资产配置、投资组合、风险管控等


!![[涌融金服]]

涌融金服是一个人工智能股票预测及期权交易服务平台。公司的主要业务是利用人工智能技术,提供个股涨跌预测以及期指对冲交易服务,提高投资选股组合、投资策略选择、单只股票预测的能力,为用户提供股票交易建议和股

!![[Kuants]]

Kuants是一个人工智能算法投资交易平台,其开发的系统和策略能够大幅提升人工智能算法在投资交易中的渗透率,帮助投资者在制定量化投资策略之后利用股市模拟器进行测试,然后在通过Kuants执行系统来操作实时交易

!![[樯图数据]]

樯图数据是一家人工智能产业地图服务商,采集企业出现在互联网上的信息,自动进行产业链分析,为金融投资、宏观规划、企业运营提供战略情报服务,隶属于南京樯图数据科技有限公司

!![[Kavout]]

Kavout 成立于2015年,总部位于西雅图。致力于用最新的AI、机器学习和大数据技术对投资决策中选股、择时、组合优化、资产配置及智能投顾,提供新一代基于AI的量化基金、策略、投资服务和解决方案

!![[异韬资产]]

异韬资产是一家人工智能机器交易的新型阳光私募投资管理机构,RC智能云平台为基于人工智能和大数据分析技术,根据历史数据和实时数据,实时分析大盘和所有个股的涨跌概率的云查询系统

!![[AlgoMerchant]]

AlgoMerchant是一个人工智能投资平台,主要为香港、新加坡和美国市场的散户投资人提供全自动机器人交易服务,允许投资者持续追踪记录,并提供从股票到期货和外汇的各种交易产品的直接访问,并基于投资算法研发出“投资机


!![[众加投资管理]]

众加投资管理是一家全自动化复合矢量量化交易技术提供商,所有交易信号均由RCSii-300运算提供,通过提供核心算法,为企业及用户提供全球外汇智能化交易服务


!![[波粒二象]]

波粒二象是一家基于人工智能的量化交易服务提供商,通过机器学习及神经网络等人工智能技术进行量化交易,建立了基于CTP的期货实时行情数据接收方案及行情数据中心,使交易能够直接执行

!![[财鲸]]

财鲸是服务于中国大众投资者的海外智能投资平台,为投资者提供便捷、高效、安全的海外投资交易解决方案。财鲸团队坚持用技术快速提升服务品质,基于数据、算法、互联网技术和金融服务整合能力,推荐顺应全球发展趋势


!![[魔活儿]]

魔活儿是一家智能投顾解决方案提供商,将人工智能与投资理财结合,为客户专属的智能投顾方案,致力于提供资产组合配置到市场预警建议等全方位投资服务。隶属于程创(北京)科技有限公司
传统物流企业在利用条形码、射频识别技术、传感器、全球定位系统等方面优化改善运输、仓储、配送装卸等物流业基本活动,同时也在尝试使用智能搜索、推理规划、计算机视觉以及智能机器人等技术,实现货物运输过程的自动化运作和高效率优化管理,提高物流效率。

例如,在仓储环节,利用大数据智能通过分析大量历史库存数据,建立相关预测模型,实现物流库存商品的动态调整。大数
据智能也可以支撑商品配送规划,进而实现物流供给与需求匹配、物流资源优化与配置等。在货物搬运环节,加载计算机视觉、动态路径规划等技术的智能搬运机器人(如搬运机器人、货架穿梭车、分拣机器人等)得到广泛应用,大大减少了订单出库时间,使物流仓库的存储密度、搬运的速度、拣选的精度均有大幅度提升。
人工智能的快速发展,为医疗健康领域向更高的智能化方向发展提供了非常有利的技术条件。近几年,智能医疗在''辅助诊疗、疾病预测、医疗影像辅助诊断、药物开发''等方面发挥重要作用。

在辅助诊疗方面,通过人工智能技术可以有效提高医护人员工作效率,提升一线全科医生的诊断治疗水平。如利用智能语音技术可以实现电子病历的智能语音录入;利用智能影像识别技术,可以实现医学图像自动读片;利用智能技术和大数据平台,构建辅助诊疗系统。

在疾病预测方面,人工智能借助大数据技术可以进行疫情监测,及时有效地预测并防止疫情的进一步扩散和发展。以流感为例,很多国家都有规定,当医生发现新型流感病例时需告知疾病控制与预防中心。但由于人们可能患病不及时就医,同时信息传达回疾控中心也需要时间,因此,通告新流感病例时往往会有一定的延迟,人工智能通过疫情监测能够有效缩短响应时间。

在医疗影像辅助诊断方面,影像判读系统的发展是人工智能技术的产物。早期的影像判读系统主要靠人手工编写判定规则,存在耗时长、临床应用难度大等问题,从而未能得到广泛推广。

影像组学是通过医学影像对特征进行提取和分析, 为患者预前和预后的诊断和治疗提供评估方法和精准诊疗决策。这在很大程度上简化了人工智能技术的应用流程,节约了人力成本。

另一种分类方式:

医疗人工智能围绕患者提供的服务主要可以分为四部分, 分别为:健康管理、智能诊断、智能治疗与智能康复。

!!智能医疗


百洋智能科技、汇医慧影、健康有益、健培、晶泰科技、兰丁高科、联影、零氪科技、妙健康、森亿智能、深睿医疗、水母基因、碳云智能、腾讯觅影、体素科技、图玛深维、推想科技、讯飞晓医、雅森科技和依图医疗

!![[CureMetrix]]

美国  图像分析    基于影像分析的乳腺癌和肺癌检测 种子轮 



!![[烈冰科技]]

烈冰科技是一家以生命科学研究与应用开发为发展方向的公司,专注于高通量测序技术和生物信息学分析的应用开发和推广,主要领域是科研、云计算和健康

http://www.novelbio.com/ 


!![[Neurotrack]]

Neurotrack推出一款大脑健康应用,帮助科学家解开记忆力之谜,寻找治疗阿尔茨海默病(老年痴呆)的方法

!![[苹果]]	

美国	人工智能综合研究	基于智能手机等硬件的多项产品和硬件、智能助手、智能家居、医疗等	市值 6091 亿美元	


!![[Enlitic]]

美国  深度学习、大数据、图像检测   癌症检测系统  三轮融资 1500 万美元   

!![[VoxelCloud]]

美国  深度学习    医疗影像分析云服务       

!![[Insilico Medicine]]

美国  深度学习和大数据    癌症诊疗    种子轮 80 万美元  

!![[Oncora Medical]]

美国  大数据和机器学习技术  通过数据分析为放射肿瘤学家提供临床决策支持,用于个性化医疗。  两轮融资 132 万美元    

!![[Atomwise]]	

美国	深度学习	药物发现	种子轮 630 万美元	

!![[Manchester Imaging]]

Manchester Imaging是一家牙科智能诊断企业。专注于口腔领域利用机器学习和计算机视觉软件,以及在统计形状和外观建模和分类方面技术,开发口腔科图像分析软件

!![[博为医疗机器人]]

博为医疗机器人专注于高端医疗机器人及医疗自动化技术服务,主要产品包括静脉药物配药机器人和医疗服务机器人,并在精准诊疗设备、医院智能化建设等方面进行前瞻性布局


!![[丽华抗癌]]

人工智能是一家致力于大数据的人工智能辅助决策抗癌自动问答的公司

!![[Paige.AI]]

Paige.AI是一家癌症智能诊断技术研发商,致力于研发病理学AI指导引擎,在临床成像数据的计算机视觉等人工智能的帮助下,对癌症进行诊断对抗,该公司将先对乳腺癌、前列腺癌和其他主要癌症领域进行诊断实验

!![[TwoXAR]]

美国  深度学习    通过药物研发平台 DUMA来评估大型公共和私有数据集,以迅速识别药物,并对药物和疾病的匹配度按照概率进行排序。 种子轮 340 万美元 

!![[瑞步康]]

瑞步康是一个医疗器械和康复器械生产商,公司致力于高端医疗器械和康复器械的研发、生产与销售,目前主要以外骨骼机器人中的关节技术为突破口,重点开发适用于智能假肢的智能膝关节和踝关节产品


!![[宜远智能]]

宜远智能是一家AI医疗技术研发商,致力于大数据技术,通过精确智能预估及有效干预,助力医院和医生为患者提供医疗服务。项目涵盖骨科智能诊断、皮肤病智能筛查、肺结节筛查等领域


!![[Berg Health]]

美国  深度学习    Interrogative Biology 平台结合病人生物学和人工智能分析来进行药物发现、开发和诊断等。       

!![[CloudMedX]]

美国  机器学习、自然语言处理 拥有 MedxExchange 、MedxInsights 和MedxCare 三款服务产品的医疗人工智能平台,提供数据、医疗洞见和健康管理服务。   融资 660 万美元  



!![[Deep Genomics]]	

加拿大	深度学习、基因生物学、精准医疗		种子轮 370 万美元	

!![[碳云智能]]	

中国	大数据、人工智能	通过数据挖掘和机器分析提供个人性健康指数分析和预测。	估值约 10 亿美元	



!![[大森智能]]

大森智能是一家医疗健康领域的软硬件AI产品研发商,引导民生健康理念由“被动治疗”向 “主动预防”转变。拥有多款POCT产品,2C的软件产品包含疾病模型、健康趋势预测、健康评测等功能。累积申请专利70余篇


!![[InSilico Medicine]]

Insilico Medicine是一家美国抗衰老及癌症治疗药物研发商,依托基因组学、医疗大数据及AI技术等技术手段,专注于癌症治疗、抗衰老药物的研发、生产及销售,同时面向用户提供健康管理、癌症预防等服务


!![[Medopad]]

Medopad是一家人工智能医疗技术研发商。致力于利用人工智能技术研发各类医疗健康方案,服务于医患双方.


!![[智影医疗]]

智影医疗是一个围绕医疗大数据、云计算和人工智能创建基于精准数字影像医学的健康分析管理平台,利用医学影像大数据、人工智能深度学习和数据挖掘技术

!![[脑医生]]

基于中国人群大数据,结合云计算和人工智能核心技术,通过图像处理、大数据运算和统计学分析等方法将医生的经验量化、标准化,精准评估中枢神经系统的智能诊断,为用户提供脑部诊断解决方案

!![[万灵盘古]]

万灵云是一家医学人工智能辅助诊断系统提供商,专注于垂直病种的医疗AI辅助诊疗系统的研发。产品可进行医疗大数据KPI预测分析与可视化等服务,并可依据医生录入症状和数据诊断川崎病等常见儿科疾病,误诊率从50%降至10%...]]

!![[有求医疗]]

有求医疗是一家健康筛查保健信息服务公司。立志于为人们提供全面健康管理服务,享受到精准医疗服务。致力于不断研究、开发和推广人工智能医疗科技服务,以帮助人们治愈疾病,减轻病痛和提高生活质量


!![[一拍科技]]

一拍科技是一家专注于VR、AR及MR领域里的内容和平台研发的公司。自主研发了基于VR全景的O2O平台、科教云VR内容平台。在前端交互和VR内容平台研发上及在医疗VR内容制作上拥有丰富的经验


!![[壹健康]]

健康聊(后更名为壹健康)是一个移动医疗健康应用,提供病人与医生在线交流、咨询服务等,隶属于北京多美视界网络科技有限公司


!![[半个医生]]

半个医生是一个医疗大数据挖掘和医疗健康服务提供商,主打“医疗版大白”,基于数据和人工智能为用户提供医疗问答、咨询、自诊服务等,隶属于杭州蕙泉健康咨询有限公司


!![[Lark]]

Lark是一家基于人工智能的数字医疗应用,公司独创了基于聊天的健康管理体验,并通过人工智能和大数据改善健康管理和生活方式


!![[颜云]]

颜云是一个皮肤辅助诊疗仪器,可用于定量检测痤疮、色斑、敏感肌等肌肤问题,给出量化诊断结果(如数量、面积)。此外,颜云将机器学习技术应用于“颜云”产品,结合硬件诊疗仪,为用户提供医疗诊断建议


!![[糖析]]

糖析是一款人工智能健康App,它使用了深度学习技术,通过分析上百万张饮料的影像数据,可以智能识别多达千种市场上流的含糖饮料,分析起含糖量。隶属于南京必拓狮网络科技有限公司


!![[见道科技]]

杭州见道科技是一家智能健康管理服务提供商,致力于人工智能、大数据、营养学、慢性病病理学的联合应用,打造人工智能营养师,主要对慢性病患者进行个性化判断,提出膳食警报和营养运动建议,并协助医生进行疾病诊断

!![[雅森科技]]

雅森成立于2006年,是国内最早专注于医学影像人工智能分析、核医学定量及CAD分析的高科技企业;致力于影像预处理、分析建模、大数据分析、深度学习辅助诊断等领域。产品覆盖脑、神经、甲状腺、血液、呼吸、病理等


!![[Your.MD]]

Your.MD是一家人工智能诊断应用服务企业,通过收集到的用户信息分析你的整体健康状况以及潜在病因,为你提供个人化的治疗方案


!![[安福星]]

安福星是一个老人和儿童智能健康管理平台,通过“云+感+端”三位一体的无缝对接,打造用户、医生、医院、药企、险企、服务商的平台


!![[医众]]

医众影像是国内数据量增长最快的第三方医学影像数据中心,专注于为医院提供影像检查业务全流程云计算服务。辅助医院链接医院、医生和患者,实现影像医生诊断资源、检查设备资源和检查结果数据的共享互通


!![[Shield宝儿智能温度计]]

Shield宝儿是一个儿童智能温度计软硬件产品,为婴幼儿提供可持续测温服务,并在超过设定温度时及时报警,减轻患者、护理者的负担,降低持续高烧的风险,可视化的历史记录可为医生诊断提供准确有效的信息

	 	

!![[PAI Health]]

PAI Health是一和加拿大健康数据记录平台,基于数据算法、生物识别与运动数据库技术,结合智能可穿戴设备,对缺乏运动导致的人体健康风险进行识别与分析,通过记录心率、步数等信息,为用户计算出健康值


!![[小牙兽]]

小牙兽是一家专注于儿童智能健康领域的企业,致力于通过智能化改造传统口腔硬件产品


!![[Basis Science]]

Basis Science成立于2010年,是一家可穿戴技术公司,主打产品为Basis健康追踪腕带


!![[Peloton]]

Peloton是一家智能健身脚踏车研发商,通过提供专业健身课程和搭建健身骑行爱好者的社区,由此来黏住用户


!![[识益生物Cein]]

识益生物Cein是一家主打手指静脉活体身份安全认证及智能健康产品研发的公司,为信息加密、移动支付、无卡会员、可穿戴体征检测等应用,提供产品、模块、芯片及解决方案授权等,如CEIN悟空指静脉识别鼠标等。


!![[齿加]]

骇思公司是一家信息科技公司,该公司致力于将科研机构技术及产品转化为民用的智能健康产品,公司的主要产品是“齿加”智能电动牙刷,齿加智能牙刷创新运用了多种传感器技术,并结合电动牙刷配置


!![[Orthotaxy]]

应用于全膝关节置换和部分膝关节置换领域,致力于通过人工智能技术实现个性化定制手术流程、优化手术方案,帮助改善临床结果


!![[DeepMind]]	

英国	人工智能基础研究	AlphaGo 、医疗健康、谷歌内部产品应用。	以 4 亿英镑被谷歌收购	

!![[透彻影像]]

透彻影像(北京)科技有限公司是专业的人工智能病理图片诊断公司,致力于使用大数据及人工智能为病理图片提供智能判别、诊断、预测,并提供最优化的解决方案。透彻影像为中国及亚太地区病理学界实现行业数字化、信息





!![[知识视觉]]

知识视觉致力于通过医学人工智能和医学图像处理技术,辅助医生分析海量医学数据,从而降低医疗技术的使用门槛,缩短诊断时间,提高诊断准确率,实现精准医疗



!![[Imagu]]

Imagu是一家专注于开发图像理解与人工智能的公司,开发出尖端的图像理解技术,并可广泛应用于医疗、医学成像、半导体、国土安全和电子商务等众多领域



!![[Predible Health]]

Predible Health是一家人工智能医疗服务公司,主要帮助诊断癌症基本的放射科医师分析医学诊断扫描文件,通过其支持的人工智能的云软件,可以诊断肝癌和肺癌。并能提供图像分析,帮助医生给出个性化的治疗解决方案


!![[兰丁高科]]

武汉兰丁医学是一家聚焦细胞病理人工智能产学研及临床服务为一体的科技型公司,其自主研发的全自动数字(远程)病理细胞分析仪成功突破了靠显微镜和人的诊断经验局限,采取人工智能的方式让机器从提供的数百万份样本


!![[碳云智能科技]]

深圳碳云智能科技有限公司成立于2015年10月27日,围绕消费者的生命大数据、互联网和人工智能创建数字生命的生态系统。由顶尖的生物科技和人工智能团队共同打造个人的健康管家,通过数字生命的生态系统引领健康生活


!![[华大基因]]

华大医学是一家全球多组学精准检测、医疗数据运营服务提供商,通过医学检测及服务,以期大幅降低出生缺陷和提高肿瘤等重大疾病的诊疗效果。华大基因集团旗下公司



!![[腾讯觅影]]

腾讯觅影是腾讯首款将人工智能技术运用到医学领域的产品。它由腾讯互联网+合作事业部牵头,聚合了腾讯公司内部包括AI Lab、优图实验室、架构平台部等多个顶尖人工智能团队,运用图像识别,大数据处理,深度学习等AI领先

!![[睿心智能医疗]]

睿心智能医疗是一家实时监测设备研发商,基于人工智能、模拟仿真、云计算的智能医学平台,通过可穿戴人体心血管实时监测设备,实现对突发恶性心脏病、脑梗的早期预警与抢救,遏制心源性猝死;为用户提供评估病情以及



!![[翼展科技]]

翼展科技是一家全球医疗影像解决方案提供商,提供医学影像存档与通讯系统、移动医疗影像产品和三维成像技术服务。企业搭建了医学影像在线通讯平台,提供运用移动互联网技术重塑传统医学影像诊断服务


!![[康夫子]]

康夫子是一家专注于医疗健康领域的公司,致力于基于无结构化信息自动抽取技术,快速地从医学书籍、医学论文、电子病历、医疗资讯中抽取信息,构建知识图谱,辅助医生临床决策


!![[推想科技]]

推想科技是一家将人工智能用于医疗服务的科技公司,基于医学影像数据,并分析对比对应的临床资料,包括临床报告和实验室研究数据,挖掘数据背后的关联性,提供医疗解决方案



!![[亿药科技]]

亿药科技是一家基于人工智能的药物研发商,通过自主开发具有深度学习能力的算法系统,对研发药物中不同的化合物进行分析、预测,以筛选靶标分子,并在预测后结合小鼠实验进行验证,为药物研发企业提供临床试验候选药




!![[医软信息]]

医软信息是一家专注于智能医学影像诊断及分析领域的企业。为临床管理全过程提供计算机辅助临床解决方案。自主开发并提供一系列的新一代计算机辅助解决方案,综合定量评估的优势于诊疗管理全周期,有效应用于对重大疾



!![[汇医慧影]]

汇医慧是一个独立第三方的医学影像咨询平台,通过人工智能和计算机算法为医疗机构提供影像学的辅助诊断和阅片服务, 服务对象是构建“医联体”体系的基层私立医院和普通医院


!![[依图医疗]]

依图医疗是一家临床诊疗辅助诊断和智能管理服务商,依图医疗将多维度医疗数据进行整合,建立了一整套包含数据ETL、数据标注、模型训练学习、临床工作流集成的数据处理平台,为医院提供跨科室的多场景应用系统和数据分析


!![[Atomwise]]

Atomwise是一家利用超级计算机进行药品研发的公司,利用超级计算机、AI和复杂的算法模拟制药过程,来预测新药品的效果,同时降低研发成本


!![[朗程网络]]

朗程网络是一家服务于生物制药行业的企业,专注于从事血液行业(血站业、浆站业、生物制品产业)的软件开发、系统集成、网络建设、智能卡开发应用

!![[智药科技]]

智药科技是一家基于人工智能加的抗病毒药物研发商,利用KangTech技术以及KangBio积累的大量实验数据,为用户提供KangTech、KangDock、KangQSAR等产品,应用于寨卡、登革热、埃博拉、非洲猪瘟等疾病的治疗


!![[Engine BioSciences]]

Engine BioSciences是一家人工智能新药研发平台

!![[Wellframe]]

Wellframe成立于2011年,是一家专注于医疗健康领域的人工智能公司,致力于通过医疗数据、预测算法和移动应用来帮助患者制定康复计划,让患者尽早恢复健康

!![[康伯石]]

用医学知识的语义结构化技术,人工智能与机器学习技术,开发健康医疗领域的垂直搜索。针对用户的健康类提问、健康知识的需求,做到快速、准确的搜索答案


!![[天数润科]]

天数润科是一家专注于智能计算领域的人工智能公司,致力于为所有面对海量数据分析挑战的企业,提供一个超高性能的智能计算平台和针对 “医疗影像智能识别、金融量化分析与交易、智能制造” 三大领域的人工智能分析系统

!![[人仁医]]

人仁医是一家聚焦于医疗保险的AI科技服务公司,将自主产权的医疗异构信息聚合技术和基于深度学习的医学自然语言处理技术应用于医疗保险的个性化投保、医疗风险测评和费率厘定,目前已在30多家医院上线了4个不同科室的


!![[舶众数据]]

舶众数据是一家基于人工智能与数据挖掘的医疗信息服务提供商,为医院和相关机构提供医疗大数据、智能化服务,上海帛仲医疗科技有限公司旗下产品

!![[大树智康]]

大树智康是一家致力于人工智能技术与应用研究的公司。以智能机器人在健康养老和康养娱乐领域的应用为发展方向,专注于智慧健康生活的服务运营,通过人工智能与医疗健康、儿童教育、家庭生活服务的有机结合,为各行业提供解决方案

!![[小草生物]]

小草生物是一家依托中国生物数据中心的生物大数据,打造的生物信息领域的精准医疗人工智能数据平台。为生物信息领域提供生物信息的“人工智能”


!![[药慧通]]

药慧通是一家医疗健康公司,定位为医生的辅助工具,帮助医生形成糖尿病患者的多维大数据系统,从而优化管理病源并减轻工作负担。此外,针对社区医院,药慧通还将建立AI风险预测系统和连续血糖监测服务,以使病人更方便


!![[昆涞 QUALAB]]

昆涞 QUALAB是一家专注从事医学实验室质量管理第三方整体解决方案的设计、开发与服务集成的专业公司,立足于引进国际先进的医学实验室质量管理的理念、理论和技术以及在此基础上的本土化改造



!![[图玛深维]]

图玛深维是一家医学诊断系统开发商,将深度学习引入到计算机辅助诊断系统中,可应用于各类医学图像分析诊断、显微镜下的病理图像分析、以及发现DNA结合的蛋白质的序列特异性并协助基因组诊断等,致力于帮助放射科医生


!![[诺道医学]]

诺道医学是一家专注医疗领域的人工智能公司,开发出了全自主知识产权、针对医疗领域的人工智能深度学习平台DORA,推出的医疗影像分析系统iSight可以辅助医生分析包括CT、MR、内镜图片、心电、脑电等在内的医疗图像数据



!![[Airdoc]]

Airdoc是一家基于人工智能的医疗健康服务企业,基于深度学习,通过计算机视觉图像识别技术、在医学专家指导下形成医学影像识别算法模型服务,帮助医生提高效率,隶属于北京郁金香伙伴科技有限公司


!![[翼心科技]]

翼心科技是一家专注于医疗健康领域的以云计算为基础的人工智能管理平台。公司拥有专业的推广团队、医学技术开发团及信息技术开发团队,并具有多项自主研发的技术创新产品及行业优质资源。公司致力于建立我国自己的心


!![[医千创]]

医千创是一家医疗机器人+医学影像3D虚拟技术+导航的科技公司,患者做完CT后,影像学资料自动生成虚拟的患者体内场景,虚拟场景与患者真实的体内场景一致。医生点击虚拟场景中的病变位置,机器人手臂就可以被导航到该位


!![[清影医疗]]

清影医疗是一家人工智能医疗影像诊断提供商,基于云的大规模医学图像信息与分析平台将高分辨率病理切片,MRI,CT


!![[柏视医疗]]

柏视医疗是一家医疗人工智能技术引领者和技术提供商,专注于乳腺癌、鼻咽癌等领域的计算机影像人工智能分析技术领域,公司拥有标识影像数据库和算法积累,合作伙伴包含国内医院和医学影像设备公司


!![[健培]]

健培是一家医疗服务机构,集自主研发、生产、整合、推广于一体,已形成医学影像输出、智慧医疗和智能诊断为主,其他大数据支撑设备及平台建设为辅的“智慧卫生”生态系统,致力于医学影像大数据分析技术(MIBA)的研


!![[帝仪科技]]

帝仪科技是一家智能穿戴产品研发商,专注于生物医学研究、精密仪器制造和软硬件技术的开发。通过对人体生物信息的采集和分析,利用人工智能和模式识别技术,对人体的生理状态进行精确的判断和预测


!![[德尚韵兴]]

德尚韵兴是一家算法理论和图形图像处理服务商,致力于医学影像人工智能辅助诊断系统、三维可视化精准术前规划、术中导航、术后评估等技术,自主研发有“超声甲状腺结节智能辅助诊断系统”


!![[Sophia Genetics]]

Sophia Genetics是一家遗传信息数据分析公司,主营业务是通过人工智能读取患者DNA找出癌症以及其他罕见疾病的基因突变原理,再与医学专家意见相结合生成一种能为病人提供个性化治疗方案的诊断结果

!![[BenchSci]]

BenchSci是一个智能数据搜索平台,通过扫描百万个生物医学研究论文的数据点,生成搜索结果,解译科学论文,并提取与生物化合物相关的使用数据,帮助科学家设计更好的实验



!![[CitiusTech]]

CitiusTech是印度一家医疗保健IT数据运营服务商,利用大数据、云计算、预测分析和数据科学等技术,主要提供医疗技术服务和解决方案,适用于医学影像、EMRs、MCOs、HIS等领域


!![[Subtle Medical]]

Subtle Medical是一家AI医疗成像解决方案提供商,公司研发深度学习技术改进了医学成像,以便更好地采集、重建、处理和分析。还改进了放射学,使成像质量显着改善,效率提高并降低了成本


!![[生物图腾]]

生物图腾是一家生物医学影像领域中的研究与应用企业。专注于通过人工智能技术提高医学影像诊断的准确性。公司科研合作单位包括南方医科大学南方医院、中山大学附属肿瘤医院等医疗机构和科研院校


!![[视见医疗]]

视见医疗是一家专注人工智能辅助医疗领域的公司。依托计算机医学影像分析和人工智能技术,实现对医学影像数据进行智能化识别分析,从而提供快速精准的辅助诊断和治疗方案,减轻医生的重复性工作,同时提高诊断的精准

!![[ROBO]]

ROBO是一家专注于手术机器人研发的公司,公司致力于以智能技术改变医疗行业。通过新一代手术机器人和超声机器人的研发和产业化,将医学界前沿的远程医疗技术以及信息化、大数据化理念付诸实践

!![[超云]]

超云是一个B超智能辅助诊断系统。基于大数据、神经网络人工智能算法用于医学B超影像诊断,降低误诊的概率,目前主要的方向是乳腺肿瘤、甲状腺肿瘤B超影像诊断


!![[Mimerse]]

Mimerse是一家VR治疗服务提供商,通过与临床医生、科学家、医疗保健系统等合作,使用沉浸式技术,致力于推动精神卫生保健领域智能技术发展,帮助用户进行精神疾病的诊断和治疗


!![[HealthPlix]]

HealthPlix是一家数字门诊服务平台。AI平台以数字方式为医院的诊所和门诊部门的医生提供帮助。该软件还允许他们提供超过18种语言的处方


!![[BrainHi]]

BrainHi是一家波多黎各AI医疗系统研发商,基于人工智能技术手段,专注于为卫生服务提供商提供虚拟接待服务,用户可借助平台预约医生,并享受预约会面、非医疗问题解答等虚拟服务

!![[Aetion]]

Aetion是一家美国医疗数据分析技术研发商,基于快速周期分析技术,提供价值型护理所需的实际分析和证据,产品涉及Aetion Evidence Platform,利用医疗系统的日常临床和财务互动来解锁关于医疗治疗效果和价值的重要证据,

!![[智成科技]]

智成科技是一家人工智能技术辅助医疗诊断服务商,专注于提供人工智能技术辅助医疗诊断服务,隶属于杭州智成科技有限公司


!![[Suki]]

Suki为医生提供了一种方法,医生只需要在诊疗患者的时候,大声说话,就可以进行记录,无需将所有一切都输入到医疗记录系统,或者完全手写记录。可以让医生更轻松地诊疗更多的患者。


!![[锐米通信科技]]

锐米通信科技是一家人工智能服务提供商,专注于将家电、照明、医疗设备、能源仪表和其他日常用品通过智能传感器和网络传输到云端,大平台和云计算将收集和分析数据,并转换成对人们有价值的信息



!![[兰丁科技]]

兰丁科技是一家硬件提供商,专业从事互联网康复医疗信息平台及语音交互人工智能产品设计与开发,致力于为用户提供的家庭智能服务和健康管理解决方案,有智能家居,智能穿戴等产品


!![[傅利叶智能科技]]

上海傅利叶是一家外骨骼机器人开发商,产品有便携性的外骨骼助力机器人、针对医院康复训练的上肢力反馈康复机器人等

!![[杰杰科技]]

杰杰科技专注于探索人工智能在医疗影像及认知推理计算领域的应用,致力于为医院打造临床与科研相结合的服务平台。业务线分为两条思路,第一是已开发的尘肺病和肺结节筛查系统的计算机视觉领域的产品,名为“小杰”

!![[心声医疗]]

心声医疗是一家AI心电医师技术服务商,致力于人工智心电分析服务


!![[美医医药]]

西藏美医医药科技有限公司是一家服务于医药产业的人工智能医药公司。从事医药研究、药品研发、市场调查


!![[博博科技]]

博博科技是一个人工智能的专家系统、提供智能医疗健康系统的解决方案,利用移动互联网技术着力解决医患沟通、医疗信息和慢病管理三大核心痛点,构建以医生-患者为核心的诊疗体系


!![[医语通]]

医语通是一个医用人工智能语音识别系统。允许医生多场景实时录入病历,通过麦克风口述病历内容,实时将语音转换为文字,并记录到电子病历系统中。北京中科汇能科技有限公司旗下产品


!![[爱医声]]

爱医声专注为医疗行业提供人工智能技术服务和良好的用户体验; 创办不到一年时间,爱医声已经和多家业内医院建立了合作关系,研发了一系列面向临床应用和个人数据服务的产品,并提供相关解决方案

!![[Owkin]]

Owkin是一家医药人工智能公司。致力于建立数学模型和算法,可以解析各类组学(omics)数据、可视化数据和患者概况信息等

!![[Protenus]]

protenus是一家医疗人工智能分析公司,致力于如何改善医疗机构监测病人资料的使用和建立信任


!![[HalioDx]]

HalioDx是一家法国肿瘤免疫诊断产品研发商,基于免疫组织化学与病理成像数字化分析技术,向肿瘤医生提供癌症相关免疫诊断服务以及诊断解决方案,主要产品有突破性免疫诊断平台Immunoscore®


!![[Doctor AI颐圣智能]]

颐圣智能是一家以医疗健康、保险体检为主的新兴人工智能企业,致力于为医疗行业客户提供专业化的技术咨询服务,专注于医疗行业,以自身丰富的医疗资源和坚实的技术背景,为客户寻求最有效的解决方案

!![[DeepCare]]

DeepCare是一家将人工智能用于医疗影像的识别和筛查的科技公司,专注于研发医疗影像检测、识别、筛查和分析技术,通过融合机器视觉、 深度学习,和大数据挖掘技术,致力将医疗影像识别技术提供给便携式医疗器械厂商

!![[Prognos]]

Prognos是一家人工智能医疗服务提供商,致力于通过分析大力健康记录和诊断结果,为人们预测疾病,并根据患者的临床特征确定最佳的治疗方案



!![[睿瀚医疗]]

睿瀚医疗是一家智能手部康复机器人研发商,致力于打造手部康复机器人系统的研发与制造,产品通过对数据从时间、频率、空间三个维度进行分析,以此来获取患者意图,之后操控机械手来实现动作训练


!![[i3systems]]

i3systems是位于印度孟买的人工智能医疗和人寿保险服务初创公司


!![[BenevolentAI]]

BenevolentAI是一家英国人工智能和医药研发相结合的公司,公司业务板块分为BenevolentBio和BenevolentTech两部分。BenevolentBio专注于将公司的技术应用到医疗保健和药物发现中,并致力于炎症、神经变性疾病(例如帕金森、阿尔茨海默

!![[Piavita]]

Piavita是一家瑞士马匹健康检测服务商,主要从事Vet System软件以及检测产品的研发,将产品安装在马的胸部后,即可通过动物的皮毛高精度测量生命体征,兽医便可以跟踪和监测动物的健康状况,及时给予相关医疗治疗服务


!![[来康]]

来康是一个智能硬件互联网家庭健康平台,利用人工智能技术,打造上医大脑,为用户提供精准及个性化的管家式全程健康管理服务

!![[snap40]]

snap40是一家英国智能医疗监测设备研发商,基于人工智能技术手段,专注于智能医疗可穿戴设备的研发、生产及销售。其开发的智能监测设备,可通过上臂佩戴实时监控人体,收集包括收缩压、呼吸频率、心率、活动度等在内的


!![[数坤科技]]

公司以心脑血管人工智能辅助诊断作为切入点,已经开发出全球领先的心脑血管人工智能辅助诊断系统,并且在国内多家综合大三甲医院临床使用。同时恶性肿瘤的人工智能产品也在研发过程中


!![[迪英加]]

迪英加是一家肿瘤活检切片大数据分析及人工智能推荐治疗云平台开发商,致力于将人工智能用于医疗影像辅助诊断。目前产品有迪英加影像云平台和全球领先的数据库,开展基于深度学习的数字病理切片人工智能分析和诊断


!![[岚时科技]]

岚时科技是一家为消费医疗行业提供商业智能服务的科技公司。公司以“为医疗机构赋能”为宗旨,为消费医疗企业提供大数据人工智能、消费金融、供应链、管理咨询一站式整体解决方案


!![[Univfy]]

Univfy借助机器学习技术来进一步提高人工受精的预测成功率,以各家医院提供的数据为基础,创建一个基于软件的预测模型,并且通过云计算系统将这一模型反馈给各家医院。


!![[马斯克]]

致力于依托人工智能和数据科学构建硬件产品和软件平台,为医疗、健康、家庭、公共安全和金融等领域寻找创新的解决方案。



!![[清睿科技]]

清睿科技是一家互联网医疗辅助诊断人工智能平台,致力于构建互联网人工智能的医疗辅助诊断系统,隶属于北京清睿智能科技有限公司


!![[体素科技VoxelCloud]]

VoxelCloud是一家人工智能医疗公司,产品覆盖肺癌、心血管疾病、眼底疾病等几个业务领域,应用云计算服务系统,为医院、体检中心、保险公司、医生集团提供服务,隶属于苏州体素信息科技有限公司

!![[森亿智能]]

森亿智能2016年4月成立,总部位于上海,专注于提供医疗人工智能解决方案。公司致力于通过数据治理将低价值数据转换成为高价值数据,推动数据驱动的面向医疗科研、医务管理、患者服务的人工智能应用,加速智慧型医疗



!![[曜立科技]]

曜立科技于2015年在北京成立,汇聚医疗、大数据、人工智能等多领域的国内外一流人才,全面进入医疗信息数据科技领域。曜立专注于医疗数据处理技术创新,融合人工智能、大数据等多方前沿科学技术


!![[云安医疗]]

云安医疗是一个致力于智慧医疗健康安全监测领域产品的研发和生产的公司,基于体外诊断、位置服务、大数据、云计算等技术,为个人、家庭、社区提供可穿戴式、居家式、集成式岗亭的全方位健康安全监测服务


!![[三坛医疗]]

三坛医疗是一家集研发、设计、生产、销售和服务为一体的医疗设备公司,专注于提供骨科手术机器人、自动麻醉机、自动腰穿机、自动弹片摘除机器人等系列产品


!![[新柯医疗]]

新柯医疗是一家从事医疗云计算相关技术产品研发、建设和服务的公司,专注于医疗云计算方面的技术研究和软件产品开发,核心研发来自柯惠医疗、柯达、飞利浦医疗、西门子和SAP等知名外企


!![[Navitor Pharmaceuticals]]

Navitor Pharmaceuticals是一家生物医药技术公司,前身是George Vlasuk,研究能够找到精确靶向mTORC1通路的药物分子,许多年龄相关的疾病都是由于mTORC1出现问题导致的


!![[御风智道科技]]

御风智道科技是一家用人工智能辅助影像诊断的医疗科技公司



!![[天明创新]]

北京天明创新数据科技是一家将人工智能技术开发应用于医疗影像、癌症诊断市场的智能自动化诊断分析系统,通过采用基于深度学习和其他机器学习算法使计算机系统获得认知能力,可以直接识别出CT/MRI/X Ray等影像


!![[Zebra Medical Vision Ltd]]

Zebra Medical Vision是一家以色列AI医疗影像服务机构,主要为放射科研发影像类医疗设备,推出了一系列针对肺癌、乳腺癌、肝癌、心血管和骨骼疾病等病症的诊断算法,产品名为AI1,并正在研发Textray技术

!![[Ada Health]]

Ada Health是一款AI医生应用,支持iOS和Android平台,该应用将人工智能与实际医生的专业知识结合在一起,帮助人们了解和管理他们的健康

!![[云迹科技]]

云迹是一家主打商用机器人服务的创业公司,拥有多项机器人知识产权,可广泛应用于餐饮娱乐、智能家居、酒店及医疗健康等领域


!![[精锋医疗]]

精锋医疗是一家专注于新一代智能手术系统的研究开发及推广的公司,期望推进未来手术的发展,目前与国内外一流的医院及外科大夫开展了紧密合作,共同探讨推进未来手术的发展



!![[天智航医疗科技]]

天智航是一家智能医疗机器人科技公司,以计算机辅助手术导航和医疗机器人为核心,为各级医疗机构提供临床数据共享与远程医疗服务,旗下有“骨科导航机器人”等

!![[星医科技]]

星医科技是一家从事互联网医疗大数据前沿领域的应用研发的企业。凭借数据优势和人工智能技术,为医患多方提供决策支持和个性化推荐服务,打造综合服务平台


!![[乐创享]]

乐创享是一家医疗器械相关服务提供商,公司集研发、供应链管理、销售为一体,公司的核心团队拥有10多年医疗行业经验,能提供领先的医疗健康产品及解决方案。公司拥有国内外多项设计方案及产品的专利,主要产品适用于

!![[肽积木]]

肽积木是一家将人工智能技术应用于医疗领域,让患者从中受益,助力健康事业的科技公司,目前专注于人工智能医疗读图领域的技术和产品提供商



!![[选最好]]

通过医生团队和健康管理师团队为服务核心,人工智能健康管理平台为技术核心,为高端客户提供“一次基因检测,终身健康管理”的服务

!![[SRT软体机器人]]

SRT软体机器人是一家主打软体机器人技术的科技公司,产品包括柔性SRT夹爪、智能医疗辅具等,隶属于北京软体机器人科技有限公司


!![[AccutarBio冰洲石生物科技]]

AccutarBio冰洲石生物科技是一家靶向治疗服务提供商,致力于通过AI技术提高筛选药物准确性和效率,打造算法平台,加速新一代药物开发



!![[水蓝科技]]

上海水蓝是一家智能硬件方案提供商,主要涵盖医疗健康类硬件设备和物联网设备等领域,专注于移动通讯、嵌入式系统、生理参数监测(血压,血氧,ECG等)的应用

!![[深睿医疗]]

深睿医疗是一家人工智能医疗应用开发商,主要涵盖医疗影像图像识别、各种恶性疾病的早期筛查、精确诊断解决方案等领域,并与多家国内顶级的医疗机构保持长期科研合作


!![[Doc.ai]]

训练人工智能根据血液测试、基因测试和医生开的处方药等数据中得出结论


!![[OKRA]]

OKRA是一家智能搜索引擎技术研发商,其引擎可以处理来自医疗记录、客户关系管理、索赔、营销、消费者和品牌测量数据的任何实际数据(real-world data,RWD)来源


!![[拍医拍]]

医拍智能(原名“拍医拍”)是一家专注于大数据的移动医疗初创企业,通过机器视觉交互获取用户的诊疗数据,勾画用户真实有效的“医疗图谱”,通过大数据挖掘,构建以患者为中心的医疗健康生态圈。


!![[泰立瑞]]

泰立瑞是一家专注于医疗数字化与AI辅助诊断的高新技术公司,为企业提供整套数字化解决方案,从对普通显微镜、裂隙灯等设备的数字化升级所需硬件


!![[Remebot柏惠维康]]

北京柏惠维康科技是一家医疗机器人研发、生产、销售、运营公司,主打产品为 Remebot 神经外科手术机器人



!![[紫石生物]]

专注于大健康领域的人工智能研究

!![[医渡云]]

医渡云是一家专注大数据医疗的科技公司,致力于与医疗机构共同建立“医疗大数据”平台,利用机器学习和人工智能技术,对医疗数据进行集成、挖掘、利用,辅助开展新型临床、科研、医院管理等服务



!![[数聚工研]]

数聚工研的Medthink 专科人工智能产品,聚焦于将AI技术结合具体病种的诊疗过程场景相结合,并致力于通过围绕AI化的专科诊断标准/指南/临床共识,将专科专家的能力放大到基层医生



!![[天创聚合]]

天创聚合是一个移动健康服务商,专注于提供智能健康管理产品与服务

!![[零氪科技]]

零氪科技作为全球领先的人工智能与医疗大数据平台,拥有国内最大规模、体量的医疗大数据资源库和最具优势的技术支撑服务体系。


!![[云巢智联]]

云巢智联是一家医疗信息化解决方案提供商,专注于云计算、大数据、区块链、人工智能等先进信息技术在医疗健康领域的落地应用,产品包括医院信息集成平台、区域医疗技术平台、医疗云解决方案等


!![[志诺维思]]

志诺维思Genowis是一家基于基因的精准医疗科技服务提供商,为临床和个人基因组提供高通量高精度的基因组数据的解决方案,包括基于多组学整合分析的疾病分子机制、肿瘤治疗动态监控、肿瘤空间分子病理分析等科研项目的


!![[慧软科技]]

慧软科技是一家从事医疗人工智能软件和设备企业,致力于发展以大数据和深度学习为驱动力的人工智能医疗软件及设备核心技术


!![[格致生命大数据]]

通过基因数据分析方法提高液体活检的敏感度与准确率。发展人工智能病程管理系统及私人医疗助理工具,优化社会医疗资源配置


!![[智微信科]]

通过人工智能的深度学习和神经网络技术可学习分析每一份检查报告,并产生专家级经验库,反向为每一份检测提供专家级建议,帮助医生提高诊断效率和准确度


!![[昆仑医云]]

医疗行业的互联网公司。公司专注于开发基于大数据和人工智能的互联网医疗云平台。借助互联网技术及医疗行业背景,通过计算机视觉及深度学习等方法为医生提供病人数据精准分析服务,提高诊断精度,制定个体化治疗方案


!![[主惠健康]]

主惠健康是一个人工智能健康管理云平台,致力于结合健康促进、智慧医疗等服务与AI智能科技、信息技术创新,为人们提供健康管理、家庭照护、留守陪伴等服务



!![[至真互联]]

眼科重度垂直领域的新生代互联网医疗公司,公司借助于人工智能、大数据、云计算,以互联网模式和思维连接患者、医院和专家,缩短并优化中间环节,重新整合眼科医疗供应链,构建一站式全眼科闭环医疗服务


!![[联想智慧医疗]]

联想智慧医疗是一家为医疗机构提供基于云计算的智慧医疗解决方案公司,专注于面向B端医疗机构为患者、医护人员和医院三者提供信息交互,协助医院信息化内部服务向外部服务升级


!![[太酷科技]]

太酷科技是一家人工智能医疗服务商,致力于研究、开发和部署人工智能技术与系统,以促进跨行业的商业与生产实践。由澳大利亚新南威尔士大学计算机与人工智能专家创立,致力于为病友提供高质量的人工智能医疗诊断意见


!![[Bright.md]]

Bright.md是一家人工智能远程护理服务医疗科技公司。旗下SmartExam平台软件,可以回答各种临床病症问题,而且还可以帮助用户搜寻附近要点,并输入医疗保险信息,利用人工智能技术分析患者信息、并且集成了电子病历记录系统


!![[NarrativeDx]]

NarrativeDx是一家用人工智能洞察患者体验的企业,通过人工智能中的自然语言处理技术,为医院分析影响患者体验的因素,并对所有的信息进行处理后,NarrativeDx统计出影响患者体验的因素,并按影响程度进行排位


!![[AIdoc Medical]]

AIdoc Medical是以色列的一家医疗健康企业,主要通过计算机视觉技术,从医疗成像领域切入,用 AI 辅助医生进行成像分析,从而提高诊疗水平和诊疗效率


智能制造是基于新一代信息通信技术与先进制造技术深度融合,贯穿于设计、生产、管理、服务等制造活动的各个环节,具有自感知、自学习、自决策、自执 行、自适应等功能的新型生产方式。

智能制造对人工智能的需求主要表现在以下 三个方面:

一是智能装备,包括自动识别设备、人机交互系统、工业机器人以及 数控机床等具体设备,涉及到跨媒体分析推理、自然语言处理、虚拟现实智能建 模及自主无人系统等关键技术。

二是智能工厂,包括智能设计、智能生产、智能 管理以及集成优化等具体内容,涉及到跨媒体分析推理、大数据智能、机器学习 等关键技术。

三是智能服务,包括大规模个性化定制、远程运维以及预测性维护 等具体服务模式,涉及到跨媒体分析推理、自然语言处理、大数据智能、高级机 器学习等关键技术。例如,现有涉及智能装备故障问题的纸质化文件,可通过自 然语言处理,形成数字化资料,再通过非结构化数据向结构化数据的转换,形成 深度学习所需的训练数据,从而构建设备故障分析的神经网络,为下一步故障诊 断、优化参数设置提供决策依据。


![[智能机器人]]

![[无人机]]




中华人民共和国学科分类与代码国家标准(GB/T13745-2009)


  《中华人民共和国国家标准GB/T13745-2009》,由中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会于2009年5月6日发布,2009年11月1日实施。以下为摘录该标准的《学科分类代码表》内容:

!一级学科目录

!!自然科学类
 110 数学

 130 力学

 140 物理学

 150 化学

 160 天文学

 170 地球科学

 180 生物学

!!农业科学类

 210 农学

 220 林学

 230 畜牧、兽医科学

 240 水产学

!!医药科学类
 310 基础医学

 320 临床医学

 330 预防医学与卫生学

 340 军事医学与特种医学

 350 药学

 360 中医学与中药学

!!工程与技术学类
 410 工程与技术科学基础学科

 420 测绘科学技术

 430 材料科学

 440 矿山工程技术

 450 冶金工程技术

 460 机械工程

 470 动力与电气工程

 480 能源科学技术

 490 核科学技术

 510 电子、通信与自动控制技术

 520 计算机科学技术

 530 化学工程

 540 纺织科学技术

 550 食品科学技术

 560 土木建筑工程

 570 水利工程

 580 交通运输工程

 590 航空、航天科学技术

 610 环境科学技术

 620 安全科学技术

 630 管理学

!!人文与社会科学类
 710 马克思主义

 720 哲学

 730 宗教学

 740 语言学

 750 文学
 760 艺术学

 770 历史学

 780 考古学

 790 经济学

 810 政治学

 820 法学

 830 军事学

 840 社会学

 850 民族学

 860 新闻学与传播学

 870 图书馆、情报与文献学

 880 教育学

 890 体育科学

 910 统计学


!具体学科细分:

110 数学
110.11 数学史

110.14 数理逻辑与数学基础   110.1410 演绎逻辑学(亦称符号逻辑学)   110.1420 证明论(亦称元数学)   110.1430 递归论   110.1440 模型论
  110.1450 公理集合论   110.1460 数学基础   110.1499 数理逻辑与数学基础其他学科

110.17 数论   110.1710 初等数论   110.1720 解析数论   110.1730 代数数论   110.1740 超越数论   110.1750 丢番图逼近
  110.1760 数的几何   110.1770 概率数论   110.1780 计算数论   110.1799 数论其他学科

110.21 代数学   110.2110 线性代数   110.2115 群论   110.2120 域论   110.2125 李群   110.2130 李代数   110.2135 Kac-Moody代数
  110.2140 环论   110.2145 模论   110.2150 格论   110.2155 泛代数理论   110.2160 范畴论   110.2165 同调代数   110.2170 代数K理论
  110.2175 微分代数   110.2180 代数编码理论   110.2199 代数学其他学科

110.24 代数几何学

110.27 几何学   110.2710 几何学基础   110.2715 欧氏几何学   110.2720 非欧几何学(包括黎曼几何学等)   110.2725 球面几何学
  110.2730 向量和张量分析   110.2735 仿射几何学   110.2740 射影几何学   110.2745 微分几何学   110.2750 分数维几何   110.2755 计算几何学
  110.2799 几何学其他学科

110.31 拓扑学   110.3110 点集拓扑学   110.3115 代数拓扑学   110.3120 同伦论   110.3125 低维拓扑学   110.3130 同调论   110.3135 维数论
  110.3140 格上拓扑学   110.3145 纤维丛论   110.3150 几何拓扑学   110.3155 奇点理论   110.3160 微分拓扑学   110.3199 拓扑学其他学科

110.34 数学分析   110.3410 微分学   110.3420 积分学   110.3430 级数论   110.3499 数学分析其他学科

110.37 非标准分析

110.41 函数论   110.4110 实变函数论   110.4120 单复变函数论   110.4130 多复变函数论   110.4140 函数逼近论   110.4150 调和分析
  110.4160 复流形   110.4170 特殊函数论   110.4199 函数论其他学科

110.44 常微分方程   110.4410 定性理论   110.4420 稳定性理论   110.4430 解析理论   110.4499 常微分方程其他学科

110.47 偏微分方程   110.4710 椭圆型偏微分方程   110.4720 双曲型偏微分方程   110.4730 抛物型偏微分方程   110.4740 非线性偏微分方程
  110.4799 偏微分方程其他学科

110.51 动力系统   110.5110 微分动力系统   110.5120 拓扑动力系统   110.5130 复动力系统   110.5199 动力系统其他学科

110.54 积分方程

110.57 泛函分析   110.5710 线性算子理论   110.5715 变分法   110.5720 拓扑线性空间   110.5725 希尔伯特空间   110.5730 函数空间
  110.5735 巴拿赫空间   110.5740 算子代数   110.5745 测度与积分   110.5750 广义函数论   110.5755 非线性泛函分析   110.5799 泛函分析其他学科

110.61 计算数学   110.6110 插值法与逼近论   110.6120 常微分方程数值解   110.6130 偏微分方程数值解   110.6140 积分方程数值解
  110.6150 数值代数   110.6160 连续问题离散化方法   110.6170 随机数值实验   110.6180 误差分析   110.6199 计算数学其他学科

110.64 概率论   110.6410 几何概率   110.6420 概率分布   110.6430 极限理论   110.6440 随机过程   110.6450 马尔可夫过程
  110.6460 随机分析   110.6470 鞅论   110.6480 应用概率论   110.6499 概率论其他学科

110.67 数理统计学   110.6710 抽样理论   110.6715 假设检验   110.6720 非参数统计   110.6725 方差分析   110.6730 相关回归分析
  110.6735 统计推断   110.6740 贝叶斯统计   110.6745 试验设计   110.6750 多元分析   110.6755 统计判决理论   110.6760 时间序列分析
  110.6799 数理统计学其他学科

110.71 应用统计数学   110.7110 统计质量控制   110.7120 可靠性数学   110.7130 保险数学   110.7140 统计模拟   110.7199 应用统计数学其他学科

11

120.20 系统学   120.2010 混沌   120.2020 一般系统论   120.2030 耗散结构理论   120.2040 协同学   120.2050 突变论   120.2060 超循环论
  120.2099 系统学其他学科

120.30 控制理论   120.3010 大系统理论   120.3020 系统辩识   120.3030 状态估计   120.3040 鲁棒控制   120.3099 控制理论其他学科

120.40 系统评估与可行性分析

120.50 系统工程方法论   120.5010 系统建模   120.5099 系统工程方法论其他学科

120.60 系统工程

120.99 信息科学与系统科学其他学科

130 力学
130.10 基础力学   130.1010 理论力学   130.1020 理性力学   130.1030 非线性力学   130.1040 连续介质力学   130.1050 摩擦学
  130.1060 柔性多体力学   130.1070 陀螺力学   130.1080 飞行力学   130.1099 基础力学其他学科

130.15 固体力学   130.1510 弹性力学   130.1515 塑性力学(包括弹塑性力学)   130.1520 粘弹性、粘塑性力学   130.1525 蠕变
  130.1530 界面力学与表面力学   130.1535 疲劳   130.1540 损伤力学   130.1545 断裂力学   130.1550 散体力学   130.1555 细观力学
  130.1560 电磁固体力学   130.1565 结构力学   130.1570 计算固体力学   130.1575 实验固体力学   130.1599 固体力学其他学科

130.20 振动与波   130.2010 线性振动力学   130.2020 非线性振动力学   130.2030 弹性体振动力学   130.2040 随机振动力学
  130.2050 振动控制理论   130.2060 固体中的波   130.2070 流体-固体耦合振动   130.2099 振动与波其他学科

130.25 流体力学   130.2511 理论流体力学   130.2514 水动力学   130.2517 气体动力学   130.2521 空气动力学   130.2524 悬浮体力学
  130.2527 湍流理论   130.2531 粘性流体力学   130.2534 多相流体力学   130.2537 渗流力学   130.2541 物理-化学流体力学
  130.2544 等离子体动力学   130.2547 电磁流体力学   130.2551 非牛顿流体力学   130.2554 流体机械流体力学   130.2557 旋转与分层流体力学
  130.2561 辐射流体力学   130.2564 计算流体力学   130.2567 实验流体力学   130.2571 环境流体力学   130.2599 流体力学其他学科

130.30 流变学

130.35 爆炸力学   130.3510 爆轰与爆燃理论   130.3520 爆炸波、冲击波、应力波   130.3530 高速碰撞动力学   130.3599 爆炸力学其他学科

130.40 物理力学   130.4010 高压固体物理力学   130.4020 稠密流体物理力学   130.4030 高温气体物理力学   130.4040 多相介质物理力学
  130.4050 临界现象与相变   130.4060 原子与分子动力学   130.4099 物理力学其他学科

130.45 统计力学

130.50 应用力学

130.99 力学其他学科

140 物理学
140.10 物理学史

140.15 理论物理学

  140.1510 数学物理   140.1520 电磁场理论   140.1530 经典场论   140.1540 相对论与引力场

  140.1550 量子力学   140.1560 统计物理学   140.1599 理论物理学其他学科

140.20 声学

  140.2010 物理声学   140.2020 非线性声学   140.2030 量子声学   140.2040 超声学

  140.2050 水声学   140.2060 应用声学   140.2099 声学其他学科

140.25 热学

  140.2510 热力学   140.2520 热物性学   140.2530 传热学   140.2599 热学其他学科

140.30 光学

  140.3010 几何光学   140.3015 物理光学   140.3020 非线性光学   140.3025 光谱学

  140.3030 量子光学   140.3035 信息光学   140.3040 导波光学   140.3045 发光学

  140.3050 红外物理   140.3055 激光物理   140.3060 应用光学   140.3099 光学其他学科

140.35 电磁学

  140.3510 电学   140.3520 静电学   140.3530 静磁学   140.3540 电动力学

  140.3599 电磁学其他学科

140.40 无线电物理

  140.4010 电磁波物理   140.4020 量子无线电物理   140.4030 微波物理学   140.4040 超高频无线电物理

  140.4050 统计无线电物理   140.4099 无线电物理其他学科

140.45 电子物理学

  140.4510 量子电子学   140.4520 电子离子与真空物理   140.4530 带电粒子光学   140.4599 电子物理学其他学科

140.50 凝聚态物理学

  140.5010 凝聚态理论   140.5015 金属物理学   140.5020 半导体物理学   140.5025 电介质物理学

  140.5030 晶体学(包括晶体生长、晶体化学等)   140.5035 非晶态物理学   140.5040 液晶物理学   140.5045 薄膜物理学

  140.5050 低维物理   140.5055 表面与界面物理学   140.5060 固体发光   140.5065 磁学

  140.5070 超导物理学   140.5075 低温物理学   140.5080 高压物理学   140.5099 凝聚态物理学其他学科

140.55 等离子体物理学

  140.5510 热核聚变等离子体物理学   140.5520 低温等离子体物理学   140.5530 等离子体光谱学   140.5540 凝聚态等离子体物理学

  140.5550 非中性等离子体物理学   140.5599 等离子体物理学其他学科

140.60 原子分子物理学

  140.6010 原子与分子理论   140.6020 原子光谱学   140.6030 分子光谱学   140.6040 波谱学

  140.6050 原子与分子碰撞过程   140.6099 原子分子物理学其他学科

140.65 原子核物理学

  140.6510 核结构   140.6515 核能谱学   140.6520 低能核反应   140.6525 中子物理学

  140.6530 裂变物理学   140.6535 聚变物理学   140.6540 轻粒子核物理学   140.6545 重离子核物理学

  140.6550 中高能核物理学   140.6599 原子核物理学其他学科

140.70 高能物理学

  140.7010 基本粒子物理学   140.7020 宇宙线物理学   140.7030 粒子加速器物理学   140.7040 高能物理实验

  140.7099 高能物理学其他学科

140.75 计算物理学

140.80 应用物理学

140.99 物理学其他学科

150 化学
150.10 化学史

150.15 无机化学

  150.1510 元素化学   150.1520 配位化学   150.1530 同位素化学   150.1540 无机固体化学

  150.1550 无机合成化学   150.1560 无机分离化学   150.1570 物理无机化学   150.1580 生物无机化学

  150.1599 无机化学其他学科

150.20 有机化学

  150.2010 元素有机化学(包括金属有机化学等)   150.2020 天然产物有机化学   150.2030 有机固体化学   150.2040 有机合成化学

  150.2050 有机光化学   150.2060 物理有机化学(包括理论有机化学、立体化学等)   150.2070 生物有机化学   150.2099 有机化学其他学科

150.25 分析化学

  150.2510 化学分析(包括定性分析、定量分析等)   150.2515 电化学分析   150.2520 光谱分析   150.2525 波谱分析

  150.2530 质谱分析   150.2535 热谱分析   150.2540 色谱分析   150.2545 光度分析

  150.2550 放射分析   150.2555 状态分析与物相分析   150.2560 分析化学计量学   150.2599 分析化学其他学科

150.30 物理化学

  150.3010 化学热力学   150.3015 化学动力学(包括分子反应动力学等)   150.3020 结构化学(包括表面化学、结构分析等)

  150.3025 量子化学   150.3030 胶体化学与界面化学   150.3035 催化化学   150.3040 热化学

  150.3045 光化学(包括超分子光化学、光电化学、激光化学、感光化学等)   150.3050 电化学   150.3055 磁化学

  150.3060 高能化学(包括辐射化学,等离体化学)   150.3065 计算化学   150.3099 物理化学其他学科

150.35 化学物理学

150.40 高分子物理

150.45 高分子化学

  150.4510 无机高分子化学   150.4520 天然高分子化学   150.4530 功能高分子(包括液晶高分子化学)

  150.4540 高分子合成化学   150.4550 高分子物理化学   150.4560 高分子光化学   150.4599 高分子化学其他学科

150.50 核化学

  150.5010 放射化学   150.5020 核反应化学   150.5030 裂变化学   150.5040 聚变化学

  150.5050 重离子核化学   150.5060 核转变化学   150.5070 环境放射化学   150.5099 核化学其他学科

150.55 应用化学

150.99 化学其他学科

160 天文学
160.10 天文学史

160.15 天体力学

  160.1510 摄动理论   160.1520 天体力学定性理论   160.1530 天体形状与自转理论   160.1540 天体力学数值方法

  160.1550 天文动力学(包括人造卫星、宇宙飞船动力学等)   160.1560 历书天文学   160.1599 天体力学其他学科

160.20 天体物理学

  160.2010 理论天体物理学   160.2020 相对论天体物理学   160.2030 等离子体天体物理学

  160.2040 高能天体物理学(包括天体核物理学)   160.2050 实测天体物理学   160.2099 天体物理学其他学科

160.25 天体化学

160.30 天体测量学

  160.3010 天文地球动力学   160.3020 基本天体测量学   160.3030 照相天体测量学   160.3040 射电天体测量学

  160.3050 空间天体测量学   160.3060 方位天文学   160.3070 实用天文学   160.3099 天体测量学其他学科

160.35 射电天文学

  160.3510 射电天体物理学   160.3520 射电天文方法   160.3599 射电天文学其他学科

160.40 空间天文学

  160.4010 红外天文学   160.4020 紫外天文学   160.4030 X射线天文学   160.4040 r射线天文学

  160.4050 中微子天文学   160.4099 空间天文学其他学科

160.45 天体演化学(各层次天体形成与演化入各学科)

160.50 星系与宇宙学

  160.5010 星系动力学   160.5020 星系天文学   160.5030 运动宇宙学   160.5040 星系际物质

  160.5050 大爆炸宇宙论   160.5060 星系形成与演化   160.5070 宇宙大尺度结构起源与演化   160.5099 星系与宇宙学其他学科

160.55 恒星与银河系

  160.5510 恒星物理学   160.5520 恒星天文学   160.5530 恒星形成与演化   160.5540 星际物质物理学

  160.5550 银河系结构与运动   160.5599 恒星与银河系其他学科

160.60 太阳与太阳系

  160.6010 太阳物理学   160.6020 太阳系物理学   160.6030 太阳系形成与演化   160.6040 行星物理学

  160.6050 行星际物理学   160.6060 陨星学   160.6099 太阳与太阳系其他学科

160.65 天体生物学

160.99 天文学其他学科

170 地球科学
170.10 地球科学史

170.15 大气科学

  170.1510 大气物理学(包括大气光学、大气声学、大气电学、云雾物理学、边界层物理学、中层物理学等)

  170.1515 大气化学   170.1520 大气探测(包括大气遥感)   170.1525 动力气象学(包括数值天气预报与数值模拟等)   170.1530 天气学

  170.1535 气候学   170.1540 云与降水物理学   170.1545 应用气象学   170.1599 大气科学其他学科

170.20 固体地球物理学

  170.2010 地球动力学   170.2015 地球重力学   170.2020 地球流体力学   170.2025 地壳与地形变

  170.2030 地球内部物理学   170.2035 地声学   170.2040 地热学   170.2045 地电学

  170.2050 地磁学   170.2055 放射性地球物理学   170.2060 地震学   170.2065 勘探地球物理学

  170.2070 计算地球物理学   170.2075 实验地球物理学   170.2099 固体地球物理学其他学科

170.25 空间物理学

  170.2510 电离层物理学   170.2520 高层大气物理学   170.2530 磁层物理学   170.2540 空间物理探测

  170.2550 空间环境学   170.2599 空间物理学其他学科

170.30 地球化学

  170.3010 元素地球化学   170.3015 有机地球化学   170.3020 放射性地球化学   170.3025 同位素地球化学

  170.3030 生物地球化学   170.3035 地球内部化学   170.3040 同位素地质年代学   170.3045 成矿地球化学

  170.3050 勘探地球化学   170.3055 实验地球化学   170.3099 地球化学其他学科

170.35 大地测量学

  170.3510 地球形状学   170.3520 几何大地测量学   170.3530 物理大地测量学   170.3540 动力大地测量学

  170.3550 空间大地测量学   170.3560 行星大地测量学   170.3599 大地测量学其他学科

170.40 地图学

170.45 地理学

  170.4510 自然地理学(包括化学地理学、生态地理学、地貌学、冰川学、冻土学、沙漠学、岩溶学等)

  170.4520 人文地理学(包括区域地理、旅游地理, 其他入有关学科)   170.4599 地理学其他学科

170.50 地质学

  170.5011 数学地质学   170.5014 地质力学   170.5017 动力地质学   170.5021 矿物学(包括放射性矿物学)

  170.5024 矿床学与矿相学(包括放射性矿床学,不包括石油、天然气和煤。)

  170.5027 岩石学   170.5031 岩土力学   170.5034 沉积学   170.5037 古地理学

  170.5041 古生物学   170.5044 地层学与地史学   170.5047 前寒武纪地质学   170.5051 第四纪地质学

  170.5054 构造地质学(包括显微构造学等)   170.5057 大地构造学   170.5061 勘查地质学

  170.5064 水文地质学(包括放射性水文地质学)   170.5067 遥感地质学   170.5071 区域地质学   170.5074 火山学

  170.5077 石油与天然气地质学   170.5081 煤田地质学   170.5084 实验地质学   170.5099 地质学其他学科

170.55 水文学

  170.5510 水文物理学   170.5515 水文化学   170.5520 水文地理学   170.5525 水文气象学

  170.5530 水文测量   170.5535 水文图学   170.5540 湖沼学   170.5545 河流学与河口水文学

  170.5599 水文学其他学科

170.60 海洋科学

  170.6010 海洋物理学   170.6015 海洋化学   170.6020 海洋地球物理学   170.6025 海洋气象学

  170.6030 海洋地质学   170.6035 物理海洋学   170.6040 海洋生物学   170.6045 河口、海岸学

  170.6050 海洋调查与监测   170.6099 海洋科学其他学科

170.99 地球科学其他学科

180 生物学
180.11 生物数学(包括生物统计学等)

180.14 生物物理学

  180.1410 生物信息论与生物控制论   180.1415 生物力学(包括生物流体力学与生物流变学等)   180.1420 理论生物物理学

  180.1425 生物声学与声生物物理学   180.1430 生物光学与光生物物理学   180.1435 生物电磁学   180.1440 生物能量学

  180.1445 低温生物物理学   180.1450 分子生物物理学   180.1455 空间生物物理学   180.1460 仿生学

  180.1465 系统生物物理学   180.1499 生物物理学其他学科

180.17 生物化学

  180.1710 多肽与蛋白质生物化学   180.1715 核酸生物化学   180.1720 多糖生物化学   180.1725 脂类生物化学

  180.1730 酶学   180.1735 膜生物化学   180.1740 激素生物化学   180.1745 生殖生物化学

  180.1750 免疫生物化学   180.1755 毒理生物化学   180.1760 比较生物化学   180.1765 应用生物化学

  180.1799 生物化学其他学科

180.21 细胞生物学

  180.2110 细胞生物物理学   180.2120 细胞结构与形态学   180.2130 细胞生理学   180.2140 细胞进化学

  180.2150 细胞免疫学   180.2160 细胞病理学   180.2199 细胞生物学其他学科

180.24 生理学

  180.2411 形态生理学   180.2414 新陈代谢与营养生理学   180.2417 心血管生理学   180.2421 呼吸生理学

  180.2424 消化生理学   180.2427 血液生理学   180.2431 泌尿生理学   180.2434 内分泌生理学

  180.2437 感官生理学   180.2441 生殖生理学   180.2444 骨骼生理学   180.2447 肌肉生理学

  180.2451 皮肤生理学   180.2454 循环生理学   180.2457 比较生理学   180.2461 年龄生理学

  180.2464 特殊环境生理学   180.2467 语言生理学   180.2499 生理学其他学科

180.27 发育生物学

180.31 遗传学

  180.3110 数量遗传学   180.3115 生化遗传学   180.3120 细胞遗传学   180.3125 体细胞遗传学

  180.3130 发育遗传学(亦称发生遗传学)   180.3135 分子遗传学   180.3140 辐射遗传学   180.3145 进化遗传学

  180.3150 生态遗传学   180.3155 免疫遗传学   180.3160 毒理遗传学   180.3165 行为遗传学

  180.3170 群体遗传学   180.3199 遗传学其他学科

180.34 放射生物学

  180.3410 放射生物物理学   180.3420 细胞放射生物学   180.3430 放射生理学   180.3440 分子放射生物学

  180.3450 放射免疫学   180.3460 放射毒理学   180.3499 放射生物学其他学科

180.37 分子生物学

180.41 生物进化论

180.44 生态学

  180.4410 数学生态学   180.4415 化学生态学   180.4420 生理生态学   180.4425 生态毒理学

  180.4430 区域生态学   180.4435 种群生态学   180.4440 群落生态学   180.4445 生态系统生态学

  180.4450 生态工程学   180.4499 生态学其他学科

180.47 神经生物学

  180.4710 神经生物物理学   180.4715 神经生物化学   180.4720 神经形态学   180.4725 细胞神经生物学

  180.4730 神经生理学   180.4735 发育神经生物学   180.4740 分子神经生物学   180.4745 比较神经生物学

  180.4750 系统神经生物学   180.4799 神经生物学其他学科

180.51 植物学

  180.5110 植物化学   180.5115 植物生物物理学   180.5120 植物生物化学   180.5125 植物形态学

  180.5130 植物解剖学   180.5135 植物细胞学   180.5140 植物生理学   180.5145 植物胚胎学

  180.5150 植物发育学   180.5155 植物遗传学   180.5160 植物生态学   180.5165 植物地理学

  180.5170 植物群落学   180.5175 植物分类学   180.5180 实验植物学   180.5185 植物寄生虫学

  180.5199 植物学其他学科

180.54 昆虫学

  180.5410 昆虫生物化学   180.5415 昆虫形态学   180.5420 昆虫组织学   180.5425 昆虫生理学

  180.5430 昆虫生态学   180.5435 昆虫病理学   180.5440 昆虫毒理学   180.5445 昆虫行为学

  180.5450 昆虫分类学   180.5455 实验昆虫学   180.5460 昆虫病毒学   180.5499 昆虫学其他学科

180.57 动物学

  180.5711 动物生物物理学   180.5714 动物生物化学   180.5717 动物形态学   180.5721 动物解剖学

  180.5724 动物组织学   180.5727 动物细胞学   180.5731 动物生理学   180.5734 动物生殖生物学

  180.5737 动物生长发育学   180.5741 动物遗传学   180.5744 动物生态学   180.5747 动物病理学

  180.5751 动物行为学   180.5754 动物地理学   180.5757 动物分类学   180.5761 实验动物学

  180.5764 动物寄生虫学   180.5767 动物病毒学   180.5799 动物学其他学科

180.61 微生物学

  180.6110 微生物生物化学   180.6115 微生物生理学   180.6120 微生物遗传学   180.6125 微生物生态学

  180.6130 微生物免疫学   180.6135 微生物分类学   180.6140 真菌学   180.6145 细菌学

  180.6150 应用微生物学   180.6199 微生物学其他学科

180.64 病毒学

  180.6410 病毒生物化学   180.6420 分子病毒学   180.6430 病毒生态学   180.6440 病毒分类学

  180.6499 病毒学其他学科

180.67 人类学

  180.6710 人类起源与演化学   180.6715 人类形态学   180.6720 人类遗传学   180.6725 分子人类学

  180.6730 人类生态学   180.6735 心理人类学   180.6740 古人类学   180.6745 人种学

  180.6750 人体测量学   180.6799 人类学其他学科

180.71 生物工程(亦称生物技术)

  180.7110 基因工程(亦称遗传工程)   180.7120 细胞工程   180.7130 蛋白质工程   180.7140 酶工程

  180.7150 发酵工程(亦称微生物工程)   180.7199 生物工程其他学科

180.74 心理学

  180.7410 心理学史   180.7415 普通心理学   180.7420 生理心理学   180.7425 认知心理学

  180.7430 发展心理学   180.7435 个性心理学   180.7440 缺陷心理学   180.7445 比较心理学

  180.7450 实验心理学   180.7455 应用心理学   180.7499 心理学其他学科

180.99 生物学其他学科

210 农学
210.10 农业史

210.20 农业基础学科

  210.2010 农业数学   210.2020 农业气象学与农业气候学   210.2030 农业生物物理学   210.2040 农业生物化学

  210.2050 农业生态学   210.2060 农业植物学   210.2070 农业微生物学   210.2080 植物营养学

  210.2099 农业基础学科其他学科

210.30 农艺学

  210.3010 作物形态学   210.3015 作物生理学   210.3020 作物遗传学   210.3025 作物生态学

  210.3030 种子学   210.3035 作物育种学与良种繁育学   210.3040 作物栽培学   210.3045 作物耕作学

  210.3050 作物种质资源学   210.3055 农产品贮藏与加工   210.3099 农艺学其他学科

210.40 园艺学

  210.4010 果树学   210.4020 瓜果学   210.4030 蔬菜学   210.4040 果蔬贮藏与加工

  210.4050 茶学(包括茶加工等)   210.4060 观赏园艺学   210.4099 园艺学其他学科

210.50 土壤学

  210.5010 土壤物理学   210.5015 土壤化学   210.5020 土壤地理学   210.5025 土壤生物学

  210.5030 土壤生态学   210.5035 土壤耕作学   210.5040 土壤改良学   210.5045 土壤肥料学

  210.5050 土壤分类学   210.5055 土壤调查与评价   210.5099 土壤学其他学科

210.60 植物保护学

  210.6010 植物检疫学   210.6015 植物免疫学   210.6020 植物病理学   210.6025 植物药理学

  210.6030 农业昆虫学   210.6035 植物病毒学   210.6040 农药学   210.6045 植物病虫害测报学

  210.6050 抗病虫害育种   210.6055 有害生物化学防治   210.6060 有害生物生物防治   210.6065 有害生物综合防治

  210.6070 杂草防治   210.6075 鸟兽、鼠害防治   210.6099 植物保护学其他学科

210.70 农业工程

  210.7010 农业机械学(包括农业机械制造等)   210.7015 农业机械化   210.7020 农业电气化与自动化

  210.7025 农田水利(包括灌溉工程、排水工程等)   210.7030 水土保持学   210.7035 农田测量

  210.7040 农业环保工程   210.7045 农业区划   210.7050 农业系统工程   210.7099 农业工程其他学科

210.99 农学其他学科  

220 林学
220.10 林业基础学科

  220.1010 森林气象学   220.1020 森林地理学   220.1030 森林水文学   220.1040 森林土壤学

  220.1050 树木生理学   220.1060 森林生态学   220.1070 森林植物学   220.1099 林业基础学科其他学科

220.15 林木遗传育种学

  220.1510 林木育种学   220.1520 林木遗传学   220.1599 林木遗传育种学其他学科

220.20 森林培育学(亦称造林学)

220.25 森林经理学

  220.2510 森林测计学   220.2520 森林测量学   220.2530 林业遥感   220.2540 林业信息管理

  220.2550 林业系统工程   220.2599 森林经理学其他学科

220.30 森林保护学

  220.3010 森林病理学   220.3020 森林昆虫学   220.3030 森林防火学   220.3099 森林保护学其他学科

220.35 野生动物保护与管理

220.40 防护林学

220.45 经济林学

220.50 园林学

  220.5010 园林植物学   220.5020 风景园林工程   220.5030 风景园林经营与管理   220.5099 园林学其他学科

220.55 林业工程

  220.5510 森林采运学   220.5520 林业机械   220.5530 林业机械化与电气化   220.5540 木材学

  220.5550 木材加工与人造板工艺学(包括家具设计与制造等)   220.5560 木材防腐学   220.5570 林产化学加工学

  220.5599 林业工程其他学科

220.60 森林统计学

220.65 林业经济学

220.99 林学其他学科  

230 畜牧、兽医科学
230.10 畜牧、兽医科学基础学科

  230.1010 家畜生物化学   230.1020 家畜生理学   230.1030 家畜遗传学   230.1040 家畜生态学

  230.1050 家畜微生物学   230.1099 畜牧、兽医科学基础学科其他学科

230.20 畜牧学

  230.2010 家畜育种学   230.2015 家畜繁殖学   230.2020 动物营养学   230.2025 饲料学

  230.2030 家畜饲养管理学   230.2035 特种经济动物饲养学   230.2040 家畜行为学   230.2045 家畜卫生学

  230.2050 草原学(包括牧草学、牧草育种学、牧草栽培学、草地生态学、草地保护学等)

  230.2055 畜产品贮藏与加工   230.2060 畜牧机械化   230.2065 养禽学   230.2070 养蜂学

  230.2075 养蚕学   230.2080 畜牧经济学   230.2099 畜牧学其他学科

230.30 兽医学

  230.3010 家畜解剖学   230.3015 家畜组织胚胎学   230.3020 兽医免疫学

  230.3025 家畜病理学(亦称兽医病理学)   230.3030 兽医药理学   230.3035 兽医临床学

  230.3040 兽医卫生检疫学   230.3045 家畜寄生虫学   230.3050 家畜传染病学   230.3055 家畜病毒学

  230.3060 中兽医学   230.3065 兽医器械学   230.3099 兽医学其他学科

230.99 畜牧、兽医科学其他学科  

240 水产学
240.10 水产学基础学科

  240.1010 水产化学   240.1020 水产地理学   240.1030 水产生物学   240.1040 水域生态学

  240.1099 水产学基础学科其他学科

240.15 水产增殖学

240.20 水产养殖学

240.25 水产饲料学

240.30 水产保护学

240.35 捕捞学

240.40 水产品贮藏与加工

240.45 水产工程学

240.50 水产资源学

240.55 水产经济学

240.99 水产学其他学科  

310 基础医学
310.11 医学生物化学

310.14 人体解剖学

  310.1410 系统解剖学   310.1420 局部解剖学   310.1499 人体解剖学其他学科

310.17 医学细胞生物学

310.21 人体生理学

310.24 人体组织胚胎学

310.27 医学遗传学

310.31 放射医学

310.34 人体免疫学

310.37 医学寄生虫学

  310.3710 医学寄生虫免疫学   310.3720 医学昆虫学   310.3730 医学蠕虫学   310.3740 医学原虫学

  310.3799 医学寄生虫学其他学科

310.41 医学微生物学(包括医学病毒学等)

310.44 病理学

  310.4410 病理生物学   310.4420 病理解剖学   310.4430 病理生理学   310.4440 免疫病理学

  310.4450 实验病理学   310.4460 比较病理学   310.4470 系统病理学   310.4480 环境病理学

  310.4499 病理学其他学科

310.47 药理学

  310.4710 基础药理学   310.4720 临床药理学   310.4730 生化药理学   310.4740 分子药理学

  310.4750 免疫药理学   310.4799 药理学其他学科

310.51 医学实验动物学

310.54 医学心理学

310.57 医学统计学

310.61 生物医学工程学

  310.6110 生物医学电子学   310.6120 临床工程学   310.6130 康复工程学   310.6140 生物医学测量学

  310.6150 人工器官与生物医学材料学   310.6199 生物医学工程学其他学科

310.99 基础医学其他学科  

320 临床医学
320.11 临床诊断学

  320.1110 症状诊断学   320.1120 物理诊断学   320.1130 机能诊断学

  320.1140 医学影象学(包括放射诊断学、同位素诊断学、超声诊断学等)   320.1150 临床放射学   320.1160 实验诊断学

  320.1199 临床诊断学其他学科

320.14 保健医学

  320.1410 康复医学   320.1420 运动医学(包括力学运动医学等)   320.1430 老年医学

  320.1499 保健医学其他学科

320.17 理疗学

320.21 麻醉学

  320.2110 麻醉生理学   320.2120 麻醉药理学   320.2130 麻醉应用解剖学   320.2199 麻醉学其他学科

320.24 内科学

  320.2410 心血管病学   320.2415 呼吸病学   320.2420 结核病学   320.2425 胃肠病学

  320.2430 血液病学   320.2435 肾脏病学   320.2440 内分泌学   320.2445 风湿病学与自体免疫病学

  320.2450 变态反应学   320.2455 感染性疾病学   320.2499 内科学其他学科

320.27 外科学

  320.2710 普通外科学   320.2715 显微外科学   320.2720 神经外科学   320.2725 颅脑外科学

  320.2730 胸外科学   320.2735 心血管外科学   320.2740 泌尿外科学   320.2745 骨外科学

  320.2750 烧伤外科学   320.2755 整形外科学   320.2760 器官移植外科学   320.2765 实验外科学

  320.2799 外科学其他学科

320.31 妇产科学

  320.3110 妇科学   320.3120 产科学   320.3130 围产医学(亦称围生医学)   320.3140 助产学

  320.3150 胎儿学   320.3160 妇科产科手术学   320.3199 妇产科学其他学科

320.34 儿科学

320.37 眼科学

320.41 耳鼻咽喉科学

320.44 口腔医学

  320.4410 口腔解剖生理学   320.4415 口腔组织学与口腔病理学   320.4420 口腔材料学   320.4425 口腔影象诊断学

  320.4430 口腔内科学   320.4435 口腔颌面外科学   320.4440 口腔矫形学   320.4445 口腔正畸学

  320.4450 口腔病预防学   320.4499 口腔医学其他学科

320.47 皮肤病学

320.51 性医学

320.54 神经病学

320.57 精神病学(包括精神卫生及行为医学等)

320.61 急诊医学

320.64 核医学

320.67 肿瘤学

  320.6710 肿瘤免疫学   320.6720 肿瘤病因学   320.6730 肿瘤病理学   320.6740 肿瘤诊断学

  320.6750 肿瘤治疗学   320.6760 肿瘤预防学   320.6770 实验肿瘤学   320.6799 肿瘤学其他学科

320.71 护理学

  320.7110 基础护理学   320.7120 专科护理学   320.7130 特殊护理学   320.7140 护理心理学

  320.7150 护理伦理学   320.7160 护理管理学   320.7199 护理学其他学科

320.99 临床医学其他学科  

330 预防医学与卫生学
330.11 营养学

330.14 毒理学

330.17 消毒学

330.21 流行病学

330.24 传染病学

330.27 媒介生物控制学

330.31 环境医学

330.34 职业病学

330.37 地方病学

330.41 社会医学

330.44 卫生检验学

330.47 食品卫生学

330.51 儿少卫生学

330.54 妇幼卫生学

330.57 环境卫生学

330.61 劳动卫生学

330.64 放射卫生学

330.67 卫生工程学

330.71 卫生经济学

330.74 优生学

330.77 健康教育学

330.81 卫生管理学

330.99 预防医学与卫生学其他学科  

340 军事医学与特种医学
340.10 军事医学

  340.1010 野战外科学   340.1015 军队流行病学   340.1020 军事环境医学   340.1025 军队卫生学

  340.1030 军队卫生装备学   340.1035 军事人机工效学   340.1040 核武器医学防护学   340.1045 化学武器医学防护学

  340.1050 生物武器医学防护学   340.1055 激光与微波医学防护学   340.1099 军事医学其他学科

340.20 特种医学

  340.2010 航空航天医学   340.2020 潜水医学   340.2030 航海医学   340.2040 法医学

  340.2099 特种医学其他学科

340.99 军事医学与特种医学其他学科  

350 药学
350.10 药物化学(包括天然药物化学等)

350.20 生物药物学

350.25 微生物药物学

350.30 放射性药物学

350.35 药剂学

350.40 药效学

350.45 药物管理学

350.50 药物统计学

350.99 药学其他学科  

360 中医学与中药学
360.10 中医学

  360.1011 中医基础理论(包括经络学等)   360.1014 中医诊断学   360.1017 中医内科学

  360.1021 中医外科学   360.1024 中医骨伤科学   360.1027 中医妇科学   360.1031 中医儿科学

  360.1034 中医眼科学   360.1037 中医耳鼻咽喉科学   360.1041 中医口腔科学   360.1044 中医老年病学

  360.1047 针灸学(包括针刺镇痛与麻醉等)   360.1051 按摩推拿学   360.1054 中医养生康复学(包括气功研究等)

  360.1057 中医护理学   360.1061 中医食疗学   360.1064 方剂学

  360.1067 中医文献学(包括难经、内经、伤寒论、金匮要略、腧穴学等)   360.1099 中医学其他学科

360.20 民族医学

360.30 中西医结合医学

360.40 中药学

  360.4010 中药化学   360.4015 中药药理学   360.4020 本草学   360.4025 药用植物学

  360.4030 中药鉴定学   360.4035 中药炮制学   360.4040 中药药剂学   360.4045 中药资源学

  360.4050 中药管理学   360.4099 中药学其他学科

360.99 中医学与中药学其他学科  

410 工程与技术科学基础学科
410.10 工程数学

410.15 工程控制论

410.20 工程力学

410.25 工程物理学

410.30 工程地质学

410.35 工程水文学

410.40 工程仿生学

410.45 工程心理学

410.50 标准化科学技术(亦称标准化学)

410.55 计量学

410.60 工程图学

410.65 勘查技术

410.70 工程通用技术

  410.7010 密封技术   410.7020 粉末技术   410.7030 真空技术   410.7040 薄膜技术

  410.7050 爆破技术   410.7060 包装技术   410.7070 照相技术   410.7080 物料搬运技术

  410.7099 工程通用技术其他学科

410.75 工业工程学(亦称工程系统工程)

410.99 工程与技术科学基础学科其他学科  

420 测绘科学技术
420.10 大地测量技术

  420.1010 大地测量定位   420.1020 重力测量   420.1030 测量平差   420.1099 大地测量技术其他学科

420.20 摄影测量与遥感技术

  420.2010 地物波谱学   420.2020 近景摄影测量   420.2030 航空摄影测量   420.2040 遥感信息工程

  420.2099 摄影测量与遥感技术其他学科

420.30 地图制图技术

  420.3010 地图投影学   420.3020 地图设计与编绘   420.3030 图形图象复制技术   420.3040 地理信息系统

  420.3099 地图制图技术其他学科

420.40 工程测量技术

  420.4010 地籍测量   420.4020 精密工程测量   420.4099 工程测量技术其他学科

420.50 海洋测绘

  420.5010 海洋大地测量   420.5015 海洋重力测量   420.5020 海洋磁力测量   420.5025 海洋跃层测量

  420.5030 海洋声速测量   420.5035 海道测量   420.5040 海底地形测量   420.5045 海图制图

  420.5050 海洋工程测量   420.5099 海洋测绘其他学科

420.60 测绘仪器

420.99 测绘科学技术其他学科  

430 材料科学
430.10 材料科学基础学科

  430.1010 材料力学   430.1020 相图与相变(包括合金化等)   430.1030 材料的组织、结构、缺陷与性能

  430.1040 金属学   430.1050 陶瓷学   430.1060 高分子材料学   430.1099 材料科学基础学科其他学科

430.15 材料表面与界面(包括表面优化技术)

430.20 材料失效与保护(包括材料腐蚀、磨损、老化、断裂及其控制等)

430.25 材料检测与分析技术

430.30 材料实验

430.35 材料合成与加工工艺

430.40 金属材料

  430.4010 黑色金属及其合金   430.4020 有色金属及其合金   430.4030 非晶、微晶金属材料(包括准晶和纳米晶材料等)

  430.4040 低维金属材料(包括薄膜、纤维和零维金属材料等)   430.4050 特种功能金属材料   430.4099 金属材料其他学科

430.45 无机非金属材料

  430.4510 玻璃与非晶无机非金属材料   430.4520 低维无机非金属材料(包括薄膜、纤维和零维非金属材料等)   430.4530 人工晶体

  430.4540 无机陶瓷材料(包括耐火材料等)   430.4550 特种功能无机非金属材料   430.4599 无机非金属材料其他学科

430.50 有机高分子材料

  430.5010 塑料、橡胶和纤维   430.5020 功能高分子材料   430.5030 高性能高分子材料

  430.5040 高分子液晶材料   430.5099 有机高分子材料其他学科

430.55 复合材料

  430.5510 金属基复合材料(包括多相复合材料等)   430.5520 无机非金属基复合材料(包括无机多相复合材料等)

  430.5530 聚合物基复合材料(包括有机多相复合材料等)   430.5599 复合材料其他学科

430.99 材料科学其他学科  

440 矿山工程技术
440.10 矿山地质学

440.15 矿山测量

440.20 矿山设计

  440.2010 地下矿设计   440.2020 露天矿设计   440.2099 矿山设计其他学科

440.25 矿山地面工程

440.30 井巷工程

  440.3010 矿山压力工程   440.3020 矿山支护工程   440.3099 井巷工程其他学科

440.35 采矿工程

  440.3510 煤矿开采   440.3520 煤及油母页岩地下气化   440.3530 金属矿开采   440.3540 非金属矿开采

  440.3599 采矿工程其他学科

440.40 选矿工程

  440.4010 选矿理论   440.4020 选矿技术   440.4030 矿石处理   440.4099 选矿工程其他学科

440.45 钻井工程

440.50 油气田开发工程

440.55 石油、天然气储存与运输工程

440.60 矿山机械工程

  440.6010 采矿机械   440.6020 选矿机械   440.6030 矿山运输机械   440.6099 矿山机械工程其他学科

440.65 矿山电气工程

440.70 采矿环境工程

440.75 矿山安全

440.80 矿山综合利用工程

440.99 矿山工程技术其他学科  

450 冶金工程技术
450.10 冶金物理化学

450.15 冶金反应工程

450.20 冶金原料与预处理

450.25 冶金热能工程

  450.2510 冶金燃料   450.2520 燃烧理论   450.2530 燃烧计算   450.2540 冶金分析

  450.2599 冶金热能工程其他学科

450.30 冶金技术

  450.3010 提炼冶金   450.3015 粉末冶金   450.3020 真空冶金   450.3025 电磁冶金

  450.3030 原子能冶金   450.3035 湿法冶金   450.3040 纤维冶金   450.3045 卤素冶金

  450.3050 微生物冶金   450.3099 冶金技术其他学科

450.35 钢铁冶金

  450.3510 炼铁   450.3520 炼钢   450.3530 铁合金冶炼   450.3599 钢铁冶金其他学科

450.40 有色金属冶金

450.45 轧制

450.50 冶金机械及自动化

450.99 冶金工程技术其他学科  

460 机械工程
460.10 机械史

460.15 机械学

  460.1510 机械原理与机构学   460.1520 机械动力学与振动   460.1530 机械强度   460.1540 机械摩擦、磨损及润滑

  460.1599 机械学其他学科

460.20 机械设计

  460.2010 机械设计原理与方法   460.2020 机械零件及传动   460.2030 机械公差、配合与技术测量   460.2040 机械制图

  460.2099 机械设计其他学科

460.25 机械制造工艺与设备

  460.2510 铸造工艺与设备   460.2515 焊接工艺与设备(包括连接工艺与设备)   460.2520 塑性加工工艺与设备

  460.2525 热处理工艺与设备   460.2530 切削加工工艺   460.2535 特种加工工艺

  460.2540 机器装配工艺   460.2545 非金属加工工艺   460.2599 机械制造工艺与设备其他学科

460.30 刀具技术

  460.3010 切削理论   460.3020 切削刀具   460.3030 磨削工具   460.3099 刀具技术其他学科

460.35 机床技术

  460.3510 机床基础理论   460.3520 金属切削机床   460.3530 数字控制机床   460.3540 特种加工机床

  460.3599 机床技术其他学科

460.40 仪器仪表技术

  460.4010 仪器仪表基础理论   460.4015 仪器仪表材料   460.4020 传感器技术   460.4025 精密仪器制造

  460.4030 测试计量仪器   460.4035 光学技术与仪器   460.4040 天文仪器   460.4045 地球科学仪器

  460.4050 大气仪器仪表   460.4099 仪器仪表技术其他学科

460.45 流体传动与控制(包括气动液压控制技术等)

460.50 机械制造自动化

  460.5010 成组技术   460.5020 数控技术   460.5030 工业机器人技术   460.5040 计算机辅助制造

  460.5099 机械制造自动化其他学科

460.55 专用机械工程

  460.5510 印刷、复制技术   460.5599 专用机械工程其他学科

460.99 机械工程其他学科  

470 动力与电气工程
470.10 工程热物理

  470.1010 工程热力学   470.1020 工程传热、传质学   470.1030 燃烧学   470.1040 多相流动

  470.1099 工程热物理其他学科

470.20 热工学

  470.2010 热工测量与仪器仪表   470.2020 制冷与低温工程   470.2030 供热工程   470.2040 工业锅炉

  470.2099 热工学其他学科

470.30 动力机械工程

  470.3010 蒸汽工程(包括锅炉、蒸汽机、汽轮机等)   470.3020 内燃机工程(包括汽油机、柴油机、气体燃料发动机等)   470.3030 流体机械及流体动力工程

  470.3040 喷气推进机与涡轮机械   470.3099 动力机械工程其他学科

470.40 电气工程

  470.4011 电工学   470.4014 电路理论   470.4017 电气测量技术及其仪器仪表   470.4021 电工材料

  470.4024 电机学   470.4027 电器学   470.4031 电力电子技术   470.4034 高电压工程

  470.4037 绝缘技术   470.4041 电热与高频技术   470.4044 超导电工技术

  470.4047 发电工程(包括水力、热力、风力、磁流体发电工程等)   470.4051 输配电工程   470.4054 电力系统及其自动化

  470.4057 电力拖动及其自动化   470.4061 用电技术   470.4064 电加工技术   470.4099 电气工程其他学科

470.99 动力与电气工程其他学科  

480 能源科学技术
480.10 能源化学

480.20 能源地理学

480.30 能源计算与测量

480.40 储能技术

480.50 节能技术

480.60 一次能源

  480.6010 煤炭能   480.6020 石油、天然气能   480.6030 水能(包括海洋能等)   480.6040 风能

  480.6050 地热能   480.6060 生物能   480.6070 太阳能   480.6080 核能

  480.6099 一次能源其他学科

480.70 二次能源

  480.7010 煤气能   480.7020 电能   480.7030 蒸汽能   480.7040 沼气能

  480.7050 激光能   480.7099 二次能源其他学科

480.80 能源系统工程

480.99 能源科学技术其他学科  

490 核科学技术
490.10 辐射物理与技术

490.15 核探测技术与核电子学

490.20 放射性计量学

490.25 核仪器、仪表

490.30 核材料与工艺技术

  490.3010 核燃料与工艺技术   490.3099 核材料与工艺技术其他学科

490.35 粒子加速器

  490.3510 粒子加速器工艺   490.3520 粒子加速器应用   490.3599 粒子加速器其他学科

490.40 裂变堆工程技术

  490.4010 裂变堆物理   490.4020 裂变堆热工与水力   490.4030 裂变堆控制   490.4040 裂变堆结构

  490.4050 裂变堆屏蔽与防护   490.4060 裂变堆建造技术   490.4099 裂变堆工程技术其他学科

490.45 核聚变工程技术

  490.4510 磁约束聚变技术   490.4520 惯性约束聚变技术   490.4530 聚变堆工程   490.4540 聚变裂变混合堆工程

  490.4599 核聚变工程技术其他学科

490.50 核动力工程技术

  490.5010 舰船核动力   490.5020 空间核动力   490.5030 核电站   490.5040 核动力运行技术

  490.5099 核动力工程技术其他学科

490.55 同位素技术

  490.5510 同位素分离技术   490.5520 同位素制备技术   490.5530 同位素应用技术   490.5599 同位素技术其他学科

490.60 核爆炸工程

490.65 核安全(包括核电站安全)

490.70 乏燃料后处理技术

490.75 辐射防护技术

490.80 核设施退役技术

490.85 放射性三废处理、处置技术

490.99 核科学技术其他学科  

510 电子、通信与自动控制技术
510.10 电子技术

  510.1010 电子电路   510.1015 天线电波传播   510.1020 无线电技术   510.1025 微波技术

  510.1030 敏感电子学   510.1035 微电子学   510.1040 仿真技术   510.1045 超导电子技术

  510.1050 电子元件与器件技术   510.1055 电子束、离子束技术   510.1060 红外与夜视技术   510.1099 电子技术其他学科

510.20 光电子学与激光技术

510.30 半导体技术

  510.3010 半导体测试技术   510.3020 半导体材料   510.3030 半导体器件与技术   510.3040 集成电路技术

  510.3050 半导体加工技术   510.3099 半导体技术其他学科

510.40 信息处理技术

  510.4010 信号检测   510.4020 参数估计   510.4030 数据处理   510.4040 语音处理

  510.4050 图象处理   510.4099 信息处理技术其他学科

510.50 通信技术

  510.5010 有线通信技术   510.5015 无线通信技术(包括微波通信、卫星通信等)   510.5020 光纤通信技术

  510.5025 通信传输技术   510.5030 通信网络技术   510.5035 通信终端技术   510.5040 电信   510.5045 邮政

  510.5050 邮电通信管理工程   510.5099 通信技术其他学科

510.60 广播与电视工程技术

510.70 雷达工程

510.80 自动控制技术

  510.8010 自动控制理论(包括线性、非线性、随机控制,最优控制、自适应控制系统、分布式控制系统、柔性控制系统等)

  510.8020 控制系统仿真技术   510.8030 机电一体化技术   510.8040 自动化仪器仪表与装置   510.8050 机器人控制

  510.8060 自动化技术应用   510.8099 自动控制技术其他学科

510.99 电子、通信与自动控制技术其他学科  

520 计算机科学技术
520.10 计算机科学技术基础学科

  520.1010 自动机理论   520.1020 可计算性理论   520.1030 计算机可靠性理论   520.1040 算法理论

  520.1050 数据结构   520.1060 数据安全与计算机安全   520.1099 计算机科学技术基础学科其他学科

520.20 人工智能

  520.2010 人工智能理论   520.2020 自然语言处理   520.2030 机器翻译   520.2040 模式识别

  520.2050 计算机感知   520.2060 计算机神经网络   520.2070 知识工程(包括专家系统)   520.2099 人工智能其他学科

520.30 计算机系统结构

  520.3010 计算机系统设计   520.3020 并行处理   520.3030 分布式处理系统   520.3040 计算机网络

  520.3050 计算机运行测试与性能评价   520.3099 计算机系统结构其他学科

520.40 计算机软件

  520.4010 软件理论   520.4020 操作系统与操作环境   520.4030 程序设计及其语言   520.4040 编译系统

  520.4050 数据库   520.4060 软件开发环境与开发技术   520.4070 软件工程   520.4099 计算机软件其他学科

'520.50 计算机工程

  520.5010 计算机元器件   520.5020 计算机处理器技术   520.5030 计算机存储技术   520.5040 计算机外围设备

  520.5050 计算机制造与检测   520.5060 计算机高密度组装技术   520.5099 计算机工程其他学科

520.60 计算机应用

  520.6010 中国语言文字信息处理(包括汉字信息处理)   520.6020 计算机仿真   520.6030 计算机图形学

  520.6040 计算机图象处理   520.6050 计算机辅助设计   520.6060 计算机过程控制

  520.6070 计算机信息管理系统   520.6080 计算机决策支持系统   520.6099 计算机应用其他学科

520.99 计算机科学技术其他学科  

530 化学工程
530.11 化学工程基础学科

  530.1110 化工热力学   530.1120 化工流体力学   530.1130 化工流变学   530.1140 颗粒学

  530.1199 化学工程基础学科其他学科

530.14 化工测量技术与仪器仪表

530.17 化工传递过程

530.21 化学分离工程

  530.2110 蒸馏   530.2120 吸收   530.2130 萃取   530.2140 吸附与离子交换

  530.2150 膜分离   530.2160 蒸发与结晶   530.2170 干燥   530.2199 化学分离工程其他学科

530.24 化学反应工程

  530.2410 催化反应工程   530.2420 催化剂工程   530.2430 固定床反应工程   530.2440 多相流反应工程

  530.2450 生化反应工程   530.2460 聚合化学反应工程   530.2470 电化学反应工程   530.2499 化学反应工程其他学科

530.27 化工系统工程

  530.2710 化工过程动态学   530.2720 化工过程控制与模拟   530.2730 化工系统优化   530.2799 化工系统工程其他学科

530.31 化工机械与设备

530.34 无机化学工程

  530.3410 酸碱盐工程技术   530.3420 硅酸盐工程技术   530.3430 放射化工   530.3440 化肥工程技术

  530.3450 化学冶金   530.3499 无机化学工程其他学科

530.37 有机化学工程

530.41 电化学工程

  530.4110 电解   530.4120 电镀   530.4130 电池   530.4140 腐蚀与防腐化学

  530.4199 电化学工程其他学科

530.44 高聚物工程

530.47 煤化学工程

530.51 石油化学工程

530.54 精细化学工程

  530.5410 表面活性剂   530.5420 香料学   530.5430 化妆品学   530.5440 染料

  530.5450 颜料与涂料学   530.5460 粘合剂(亦称胶粘剂)   530.5499 精细化学工程其他学科

530.57 造纸技术

530.61 毛皮与制革工程

530.64 制药工程

  530.6410 医药工程   530.6420 农药工程   530.6430 兽药工程   530.6499 制药工程其他学科

530.67 生物化学工程

530.99 化学工程其他学科  

540 纺织科学技术
540.10 纺织科学技术基础学科

  540.1010 纺织化学   540.1020 纺织美学与色彩学   540.1099 纺织科学技术基础学科其他学科

540.20 纺织材料

540.30 纤维制造技术

540.40 纺织技术

  540.4010 纺织品结构与设计   540.4015 棉纺学   540.4020 棉织学   540.4025 麻纺织

  540.4030 毛纺织   540.4035 丝纺织   540.4040 化学纤维纺织   540.4045 新型纺纱、无纺布与特种织物

  540.4050 针织   540.4099 纺织技术其他学科

540.50 染整技术

  540.5010 染炼技术   540.5020 印花技术   540.5030 染色技术   540.5040 整理技术

  540.5099 染整技术其他学科

540.60 服装技术

  540.6010 服装设计   540.6020 服装加工   540.6099 服装技术其他学科

540.70 纺织机械与设备

  540.7010 纺织器材设计与制造   540.7020 纺织机械设计与制造   540.7099 纺织机械与设备其他学科

540.99 纺织科学技术其他学科  

550 食品科学技术
550.10 食品科学技术基础学科

  550.1010 食品生物化学   550.1020 食品营养学   550.1030 食品检验学   550.1099 食品科学技术基础学科其他学科

550.20 食品加工技术

  550.2010 食用油脂加工技术   550.2015 制糖技术   550.2020 肉加工技术   550.2025 乳加工技术

  550.2030 蛋加工技术   550.2035 水果、蔬菜加工技术   550.2040 食品发酵与酿造技术   550.2045 食品焙烤加工技术

  550.2050 调味品加工技术(包括食盐加工技术等)   550.2055 食品添加剂技术   550.2060 饮料冷食制造技术   550.2065 罐头技术

  550.2099 食品加工技术其他学科

550.30 食品包装与储藏

550.40 食品机械

550.50 食品加工的副产品加工与利用

550.60 食品工业企业管理学

550.99 食品科学技术其他学科  

560 土木建筑工程
560.10 建筑史

560.15 土木建筑工程基础学科

  560.1510 建筑光学   560.1520 建筑声学   560.1530 建筑气象学   560.1599 土木建筑工程基础学科其他学科

560.20 土木建筑工程测量

560.25 建筑材料

  560.2510 金属建筑材料   560.2520 非金属建筑材料   560.2530 复合建筑材料

  560.2540 特种建筑材料(包括隔音、防水、防火、绝热、耐震、防蚀、装修材料等)   560.2599 建筑材料其他学科

560.30 工程结构

  560.3010 杆件结构   560.3020 薄壳结构   560.3030 悬索与张拉结构   560.3040 实体结构

  560.3050 结构设计   560.3099 工程结构其他学科

560.35 土木建筑结构

  560.3510 木结构   560.3520 砖结构   560.3530 金属结构   560.3540 混凝土与钢筋混凝土结构

  560.3550 喷锚结构   560.3560 复合结构   560.3570 特种结构   560.3599 土木建筑结构其他学科

560.40 土木建筑工程设计

  560.4010 建筑设计方法与理论   560.4020 城乡规划方法与理论   560.4030 建筑美学   560.4040 建筑室内设计

  560.4050 建筑室外环境设计   560.4060 土木工程设计   560.4099 土木建筑工程设计其他学科

560.45 土木建筑工程施工

  560.4510 地基基础工程   560.4520 地面工程   560.4530 地下工程   560.4540 墙体工程

  560.4550 土木施工电器工程   560.4560 装饰工程   560.4599 土木建筑工程施工其他学科

560.50 土木工程机械与设备

  560.5010 起重机械   560.5020 土木工程运输机械   560.5030 土方机械   560.5040 桩工机械

  560.5050 石料开采加工机械   560.5060 钢筋混凝土机械   560.5070 装修机械   560.5099 土木工程机械与设备其他学科

560.55 市政工程

  560.5510 城市给水排水工程   560.5520 通风与空调工程   560.5530 供热与供燃气工程   560.5540 电讯管道工程

  560.5550 城市系统工程   560.5599 市政工程其他学科

560.60 建筑经济学

560.99 土木建筑工程其他学科  

570 水利工程
570.10 水利工程基础学科

  570.1010 水力学   570.1020 河流与海岸动力学   570.1099 水利工程基础学科其他学科

570.15 水利工程测量

570.20 水工材料

570.25 水工结构(亦称水工建筑物)

  570.2510 一般水工建筑物   570.2520 专门水工建筑物   570.2599 水工结构其他学科

570.30 水力机械

570.35 水利工程施工

  570.3510 水利建筑工程施工   570.3520 水工设备安装(包括水工金属结构安装等)   570.3599 水利工程施工其他学科

570.40 水处理(不包括废水处理)

  570.4010 给水处理   570.4099 水处理其他学科

570.45 河流泥沙工程学

  570.4510 水沙动力学   570.4520 河工学   570.4599 河流泥沙工程学其他学科

570.50 海洋工程

  570.5010 海洋工程结构与施工   570.5020 海底矿产开发   570.5030 海水资源利用   570.5040 海洋环境工程

  570.5099 海洋工程其他学科

570.55 环境水利

  570.5510 环境水利与评价   570.5520 区域环境水利   570.5530 水资源保护   570.5599 环境水利其他学科

570.60 水利管理

  570.6010 水利工程管理(包括水利调度、水利施工管理、养护等)   570.6020 水利工程检查观测

  570.6030 水利管理自动化系统   570.6099 水利管理其他学科

570.65 防洪工程

  570.6510 防洪   570.6520 防汛   570.6530 防凌   570.6599 防洪工程其他学科

570.70 水利经济学

570.99 水利工程其他学科  

580 交通运输工程
580.10 道路工程

  580.1010 路基工程   580.1020 桥涵工程   580.1030 隧道工程   580.1099 道路工程其他学科

580.20 公路运输

  580.2010 车辆工程   580.2020 公路标志、信号、监控工程   580.2030 公路运输管理   580.2099 公路运输其他学科

580.30 铁路运输

  580.3010 铁路电气化工程   580.3020 铁路通信信号工程   580.3030 铁路机车车辆工程   580.3040 铁路运输管理

  580.3099 铁路运输其他学科

580.40 水路运输

  580.4010 航海学   580.4020 导航建筑物与航标工程   580.4030 航道工程   580.4040 港口工程

  580.4050 疏浚工程   580.4060 水路运输管理   580.4099 水路运输其他学科

580.50 船舶、舰船工程

580.60 航空运输

  580.6010 机场工程   580.6020 航空运输管理   580.6099 航空运输其他学科

580.70 交通运输系统工程

580.80 交通运输安全工程

580.99 交通运输工程其他学科  

590 航空、航天科学技术
590.10 航空、航天科学技术基础学科

  590.1010 大气层飞行力学   590.1020 航天动力学   590.1030 飞行器结构力学   590.1040 飞行原理

  590.1099 航空、航天科学技术基础学科其他学科

590.15 航空器结构与设计

  590.1510 气球、飞艇   590.1520 定翼机   590.1530 旋翼机   590.1599 航空器结构与设计其他学科

590.20 航天器结构与设计

  590.2010 火箭、导弹   590.2020 人造地球卫星   590.2030 空间探测器   590.2040 宇宙飞船

  590.2050 航天站   590.2060 航天飞机   590.2099 航天器结构与设计其他学科

590.25 航空、航天推进系统

590.30 飞行器仪表、设备

590.35 飞行器控制、导航技术

590.40 航空、航天材料

  590.4010 航空、航天金属材料   590.4020 航空、航天非金属材料   590.4030 航空、航天复合材料   590.4040 航空、航天燃料与润滑剂

  590.4099 航空、航天材料其他学科

590.45 飞行器制造技术

  590.4510 航空器制造工艺   590.4520 航天器制造工艺   590.4599 飞行器制造技术其他学科

590.50 飞行器试验技术

  590.5010 航空器地面试验   590.5020 航空器飞行试验   590.5030 航天器地面试验   590.5040 航天器飞行试验

  590.5099 飞行器试验技术其他学科

590.55 飞行器发射、飞行技术

  590.5510 飞行技术   590.5520 飞行器发射、飞行事故   590.5599 飞行器发射、飞行技术其他学科

590.60 航天地面设施、技术保障

  590.6010 发射场、试验场   590.6020 航天测控系统   590.6099 航天地面设施、技术保障其他学科

590.65 航空、航天系统工程

  590.6510 航空系统工程   590.6520 航天系统工程   590.6530 航空、航天可靠性工程   590.6599 航空、航天系统工程其他学科

590.99 航空、航天科学技术其他学科  

610 环境科学技术
610.10 环境科学技术基础学科

  610.1010 环境物理学(包括环境声学等)   610.1015 环境化学   610.1020 环境生物学   610.1025 环境气象学

  610.1030 环境地学(包括环境地球化学、环境地质学等)   610.1035 环境生态学   610.1040 环境毒理学   610.1045 自然环境保护学

  610.1050 环境管理学   610.1099 环境科学技术基础学科其他学科

610.20 环境学

  610.2010 大气环境学   610.2020 水体环境学(包括海洋环境学)   610.2030 土壤环境学   610.2040 区域环境学

  610.2099 环境学其他学科

610.30 环境工程学

  610.3010 环境保护工程   610.3015 大气污染防治工程   610.3020 水污染防治工程   610.3025 固体污染防治工程

  610.3030 三废处理与综合利用   610.3035 噪声与震动控制   610.3040 环境质量监测与评价   610.3045 环境规划

  610.3050 环境系统工程   610.3099 环境工程学其他学科

610.99 环境科学技术其他学科  

620 安全科学技术
620.10 安全科学技术基础学科

  620.1010 灾害物理学   620.1020 灾害化学   620.1030 灾害学   620.1040 灾害毒理学

  620.1099 安全科学技术基础学科其他学科

620.20 安全学

  620.2010 安全系统学   620.2020 安全心理学   620.2030 安全模拟与安全仿真学   620.2040 安全人机学

  620.2050 安全经济学   620.2060 安全管理学   620.2070 安全教育学   620.2099 安全学其他学科

620.30 安全工程

  620.3010 消防工程   620.3020 爆炸安全工程   620.3030 安全设备工程   620.3040 安全电气工程

  620.3050 部门安全工程   620.3099 安全工程其他学科

620.40 职业卫生工程

  620.4010 防尘工程   620.4020 防毒工程   620.4030 生产噪声与振动控制   620.4040 个体防护

  620.4099 职业卫生工程其他学科

620.50 安全管理工程

  620.5010 安全信息工程   620.5020 风险评价与失效分析   620.5030 工业灾害控制   620.5040 安全检测与监控技术

  620.5099 安全管理工程其他学科

620.99 安全科学技术其他学科  

630 管理学
630.10 管理思想史

630.15 管理理论

  630.1510 管理哲学   630.1520 组织理论   630.1530 行为科学   630.1540 决策理论

  630.1550 系统管理理论   630.1599 管理理论其他学科

630.20 管理心理学

630.25 管理计量学

630.30 部门经济管理

630.35 科学学与科技管理

  630.3510 科学社会学   630.3520 科技政策学   630.3530 科学心理学   630.3540 科学计量学

  630.3550 科技管理学   630.3599 科学学与科技管理其他学科

630.40 企业管理

  630.4010 生产管理   630.4015 经营管理   630.4020 财务管理   630.4025 成本管理

  630.4030 劳动人事管理   630.4035 技术管理   630.4040 营销管理   630.4045 物资管理

  630.4050 设备管理   630.4055 质量管理   630.4099 企业管理其他学科

630.45 行政管理

630.50 管理工程

  630.5010 生产系统管理   630.5015 研究与开发管理   630.5020 质量控制与可靠性管理   630.5025 物流系统管理

  630.5030 战略管理   630.5035 决策分析   630.5040 决策支持系统   630.5045 管理信息系统

  630.5050 管理系统仿真   630.5055 工效学   630.5060 部门管理工程   630.5099 管理工程其他学科

630.55 人力资源开发与管理

  630.5510 人力资源开发战略   630.5520 人才学   630.5599 人力资源开发与管理其他学科

630.60 未来学

  630.6010 理论预测学   630.6020 预测评价学   630.6030 技术评估学   630.6040 全球未来学

  630.6099 未来学其他学科

630.99 管理学其他学科  

710 马克思主义
710.10 马、恩、列、斯思想研究

710.20 毛泽东思想研究

710.30 马克思主义思想史

710.40 科学社会主义

710.50 社会主义运动史(包括国际共产主义运动)

710.60 国外马克思主义研究

710.99 马克思主义其他学科  

720 哲学
720.10 马克思主义哲学

  720.1010 辩证唯物主义   720.1020 历史唯物主义   720.1030 马克思主义哲学史   720.1099 马克思主义哲学其他学科

720.15 自然辩证法(亦称科学技术哲学)

  720.1510 自然观   720.1520 科学哲学   720.1530 技术哲学

  720.1540 专门自然科学哲学(包括人工智能哲学、数学哲学、物理哲学等)   720.1599 自然辩证法其他学科

720.20 中国哲学史

  720.2010 先秦哲学   720.2020 秦汉哲学   720.2030 魏晋南北朝哲学   720.2040 隋唐五代哲学

  720.2050 宋元明清哲学   720.2060 中国近代哲学   720.2070 中国现代哲学   720.2080 中国少数民族哲学思想

  720.2099 中国哲学史其他学科

720.25 东方哲学史

  720.2510 印度哲学   720.2520 伊斯兰哲学   720.2530 日本哲学   720.2599 东方哲学史其他学科

720.30 西方哲学史

  720.3010 古希腊罗马哲学   720.3020 中世纪哲学   720.3030 文艺复兴时期哲学   720.3040 十七、十八世纪欧洲哲学

  720.3050 德国古典哲学   720.3060 俄国哲学(包括俄国革命民主主义者的哲学)   720.3099 西方哲学史其他学科

720.35 现代外国哲学

  720.3510 十九世纪末至二十世纪中叶西方哲学   720.3520 分析哲学   720.3530 欧洲大陆人文哲学

  720.3540 解释学   720.3550 符号学   720.3560 实用主义哲学   720.3599 现代外国哲学其他学科

720.40 逻辑学

  720.4010 逻辑史(包括中国逻辑史、西方逻辑史、印度逻辑史等)   720.4020 形式逻辑(亦称传统逻辑)

  720.4030 哲理逻辑(包括模态、多值、构造、时态、模糊逻辑等)   720.4040 语言逻辑   720.4050 归纳逻辑   720.4060 辩证逻辑

  720.4099 逻辑学其他学科

720.45 伦理学

  720.4510 伦理学原理   720.4515 中国伦理思想史   720.4520 东方伦理思想史   720.4525 西方伦理思想史

  720.4530 马克思主义伦理思想史   720.4535 职业伦理学   720.4540 医学伦理学   720.4545 教育伦理学

  720.4550 政治伦理学   720.4555 家庭伦理学   720.4560 生命伦理学   720.4565 生态伦理学

  720.4599 伦理学其他学科

720.50 美学

  720.5010 美学原理   720.5020 中国美学史   720.5030 东方美学史   720.5040 西方美学史

  720.5050 西方现代美学   720.5060 马克思主义美学   720.5070 艺术美学(包括音乐、影视美学、建筑美学等)

  720.5080 技术美学   720.5099 美学其他学科

720.99 哲学其他学科  

730 宗教学
730.11 宗教学理论

  730.1110 马克思主义宗教学   730.1115 宗教史学   730.1120 宗教哲学   730.1125 宗教社会学

  730.1130 宗教心理学   730.1135 比较宗教学   730.1140 宗教地理学   730.1145 宗教文学艺术

  730.1150 宗教文献学   730.1155 神话学   730.1199 宗教学理论其他学科

730.14 无神论

  730.1410 无神论史   730.1420 中国无神论   730.1430 外国无神论   730.1499 无神论其他学科

730.17 原始宗教

730.21 古代宗教

  730.2110 中国古代宗教   730.2120 外国古代宗教   730.2199 古代宗教其他学科

730.24 佛教

  730.2410 佛教哲学   730.2420 佛教因明   730.2430 佛教艺术   730.2440 佛教文献

  730.2450 佛教史   730.2499 佛教其他学科

730.27 基督教

  730.2710 圣经学   730.2720 基督教哲学   730.2730 基督教伦理学   730.2740 基督教史

  730.2750 基督教艺术   730.2799 基督教其他学科

730.31 伊斯兰教

  730.3110 伊斯兰教义学   730.3120 伊斯兰教法学   730.3130 伊斯兰教哲学   730.3140 古兰学

  730.3150 圣训学   730.3160 伊斯兰教史   730.3170 伊斯兰教艺术   730.3199 伊斯兰教其他学科

730.34 道教

  730.3410 道教哲学   730.3420 道教文献   730.3430 道教艺术   730.3440 道教史

  730.3499 道教其他学科

730.37 印度教

730.41 犹太教

730.44 祆教

730.47 摩尼教

730.51 锡克教

730.54 耆那教

730.57 神道教

730.61 中国民间宗教与民间信仰

730.64 中国少数民族宗教

730.67 当代宗教

  730.6710 中国当代宗教   730.6720 世界当代宗教   730.6730 新兴宗教   730.6799 当代宗教其他学科

730.99 宗教学其他学科  

740 语言学
740.10 普通语言学

  740.1010 语音学   740.1015 语法学   740.1020 语义学   740.1025 词汇学

  740.1030 语用学   740.1035 方言学   740.1040 修辞学   740.1045 文字学

  740.1050 语源学   740.1099 普通语言学其他学科

740.15 比较语言学

  740.1510 历史比较语言学   740.1520 类型比较语言学   740.1530 双语对比语言学   740.1599 比较语言学其他学科

740.20 语言地理学

740.25 社会语言学

740.30 心理语言学

740.35 应用语言学

  740.3510 语言教学   740.3520 话语语言学   740.3530 实验语音学   740.3540 数理语言学

  740.3550 计算语言学   740.3560 翻译学   740.3599 应用语言学其他学科

740.40 汉语研究

  740.4010 普通话   740.4015 汉语方言   740.4020 汉语语音   740.4025 汉语音韵

  740.4030 汉语语法   740.4035 汉语词汇   740.4040 汉语训诂   740.4045 汉语修辞

  740.4050 汉字规范   740.4055 汉语史   740.4099 汉语研究其他学科

740.45 中国少数民族语言文字

  740.4510 蒙古语文   740.4515 藏语文   740.4520 维吾尔语文   740.4525 哈萨克语文

  740.4530 满语文   740.4535 朝鲜语文   740.4540 傣族语文   740.4545 彝族语文

  740.4550 壮语文   740.4555 苗语文   740.4560 瑶语文   740.4565 柯尔克孜语文

  740.4570 锡伯语文   740.4599 中国少数民族语言文字其他学科

740.50 外国语言

  740.5011 英语   740.5014 德语   740.5017 瑞典语   740.5021 意大利语

  740.5024 法语   740.5027 西班牙语、葡萄牙语   740.5031 罗马尼亚语   740.5034 俄语

  740.5037 波兰语、捷克语   740.5041 塞尔维亚语、保加利亚语   740.5044 希腊语   740.5047 阿尔巴尼亚语

  740.5051 匈牙利语   740.5054 梵语、印地语、乌尔都语、僧伽罗语   740.5057 波斯语

  740.5061 土耳其语   740.5064 阿拉伯语   740.5067 希伯莱语   740.5071 豪萨语

  740.5074 斯瓦希里语   740.5077 越南语、柬埔寨语   740.5081 印度尼西亚语、菲律宾国语、马来语

  740.5084 缅甸语   740.5087 泰语、老挝语   740.5091 日语   740.5094 世界语

  740.5099 外国语言其他学科

740.99 语言学其他学科  

750 文学
750.11 文学理论

750.14 文艺美学

750.17 文学批评

750.21 比较文学

750.24 中国古代文学史

  750.2410 周秦汉文学   750.2415 魏晋文学   750.2420 南北朝文学   750.2425 隋唐五代文学

  750.2430 宋代文学   750.2435 辽金文学   750.2440 元代文学   750.2445 明代文学

  750.2450 清代文学   750.2499 中国古代文学史其他学科

750.27 中国近代文学史

750.31 中国现代文学史(包括当代文学史)

750.34 中国各体文学

  750.3410 中国诗歌文学   750.3420 中国戏剧文学   750.3430 中国小说文学   750.3440 中国散文文学

  750.3499 中国各体文学其他学科

750.37 中国民间文学

750.41 中国儿童文学

750.44 中国少数民族文学

  750.4410 蒙古族文学   750.4420 藏族文学   750.4430 维吾尔族文学   750.4440 哈萨克族文学

  750.4450 朝鲜族文学   750.4499 中国少数民族文学其他学科

750.47 世界文学史

  750.4710 古代世界文学史   750.4720 中世纪世界文学史   750.4730 近代世界文学史

  750.4740 现代世界文学史(包括当代世界文学史)   750.4799 世界文学史其他学科

750.51 东方文学

  750.5110 印度文学   750.5120 日本文学   750.5199 东方文学其他学科

750.54 俄国文学(包括原苏联文学)

750.57 英国文学

750.61 法国文学

750.64 德国文学

750.67 意大利文学

750.71 美国文学

750.74 北欧文学

750.77 东欧文学

750.81 拉美文学

750.84 非洲文学

750.87 大洋洲文学

750.99 文学其他学科  

760 艺术学
760.10 艺术心理学

760.15 音乐

  760.1510 音乐学(包括音乐史、音乐美学等)   760.1520 作曲与作曲理论   760.1530 音乐表演艺术   760.1599 音乐其他学科

760.20 戏剧

  760.2010 戏剧史   760.2020 戏剧理论   760.2099 戏剧其他学科

760.25 戏曲

  760.2510 戏曲史   760.2520 戏曲理论   760.2530 戏曲表演   760.2599 戏曲其他学科

760.30 舞蹈

  760.3010 舞蹈史   760.3020 舞蹈理论   760.3030 舞蹈编导   760.3040 舞蹈表演

  760.3099 舞蹈其他学科

760.35 电影

  760.3510 电影史   760.3520 电影理论   760.3530 电影艺术   760.3599 电影其他学科

760.40 广播电视文艺

760.45 美术

  760.4510 美术史   760.4520 美术理论   760.4530 绘画艺术   760.4540 雕塑艺术

  760.4599 美术其他学科

760.50 工艺美术

  760.5010 工艺美术史   760.5020 工艺美术理论   760.5030 环境艺术   760.5099 工艺美术其他学科

760.55 书法

  760.5510 书法史   760.5520 书法理论   760.5599 书法其他学科

760.60 摄影

  760.6010 摄影史   760.6020 摄影理论   760.6099 摄影其他学科

760.99 艺术学其他学科  

770 历史学
770.10 史学史

770.15 史学理论

770.20 历史文献学

770.25 中国通史

770.30 中国古代史

  770.3010 先秦史   770.3015 秦汉史   770.3020 魏晋南北朝史   770.3025 隋唐五代十国史

  770.3030 宋史   770.3035 辽金史   770.3040 元史   770.3045 明史

  770.3050 清史   770.3055 中国古文字(包括甲骨文、金文等)   770.3060 中国古代契约文书(包括敦煌学、明清契约文书研究、鱼鳞册研究等)

  770.3099 中国古代史其他学科

770.35 中国近代史、现代史

  770.3510 鸦片战争史   770.3515 太平天国史   770.3520 洋务运动史   770.3525 戊戌政变史

  770.3530 义和团运动史   770.3535 辛亥革命史   770.3540 五四运动史   770.3545 新民主主义革命史

  770.3550 中国共产党史   770.3555 中国国民党史   770.3560 中国民主党派史   770.3565 中华民国史

  770.3570 中华人民共和国史   770.3599 中国近代史、现代史其他学科

770.40 世界通史

  770.4010 原始社会史   770.4020 世界古代史   770.4030 世界中世纪史   770.4040 世界近代史

  770.4050 世界现代史   770.4099 世界通史其他学科

770.45 亚洲史

  770.4510 日本史   770.4520 印度史   770.4530 东南亚史   770.4540 南亚史

  770.4550 中亚史   770.4560 西亚史   770.4599 亚洲史其他学科

770.50 非洲史

  770.5010 北非史   770.5020 撒哈拉以南非洲史   770.5030 埃及史   770.5040 南非联邦史

  770.5099 非洲史其他学科

770.55 美洲史

  770.5510 美洲古代文明史   770.5520 美国史   770.5530 加拿大史   770.5540 拉丁美洲史

  770.5599 美洲史其他学科

770.60 欧洲史

  770.6010 俄国史(包括原苏联史)   770.6020 英国史   770.6030 法国史   770.6040 德国史

  770.6050 意大利史   770.6060 西班牙史   770.6070 东欧国家史   770.6080 北欧国家史

  770.6099 欧洲史其他学科

770.65 澳洲、大洋洲史

770.70 专门史

  770.7010 政治史   770.7015 思想史   770.7020 文化史   770.7025 科技史

  770.7030 社会史   770.7035 城市史   770.7040 中外文化交流史   770.7045 历史地理学

  770.7050 方志学   770.7055 人物研究   770.7060 谱牒学   770.7099 专门史其他学科

770.99 历史学其他学科  

780 考古学
780.10 考古理论

780.20 考古学史

780.30 考古技术

  780.3010 考古发掘   780.3020 考古修复   780.3030 考古年代测定   780.3099 考古技术其他学科

780.40 中国考古

  780.4010 旧石器时代考古   780.4020 新石器时代考古   780.4030 商周考古   780.4040 秦汉考古

  780.4050 三国两晋、南北朝、隋唐考古   780.4060 宋元明考古   780.4099 中国考古其他学科

780.50 外国考古

  780.5010 亚洲考古   780.5020 欧洲考古   780.5030 非洲考古   780.5040 美洲考古

  780.5050 大洋洲考古   780.5099 外国考古其他学科

780.60 专门考古

  780.6010 金石学   780.6020 铭刻学   780.6030 甲骨学   780.6040 古钱学

  780.6050 美术考古   780.6060 宗教考古   780.6070 水下考古   780.6099 专门考古其他学科

780.99 考古学其他学科  

790 经济学
790.11 政治经济学

  790.1110 资本主义政治经济学   790.1120 社会主义政治经济学   790.1199 政治经济学其他学科

790.13 宏观经济学

790.15 微观经济学

790.17 比较经济学

790.19 经济地理学(包括工业地理学、农业地理学等)

790.21 发展经济学

790.23 生产力经济学

790.25 经济思想史

  790.2510 中国经济思想史   790.2520 外国经济思想史   790.2530 马克思主义经济思想史   790.2599 经济思想史其他学科

790.27 经济史

  790.2710 世界经济史   790.2720 中国经济史   790.2799 经济史其他学科

790.29 世界经济学(亦称国际经济学)

  790.2911 国际经济关系   790.2914 国际贸易学(包括国际市场营销学、国际商品学)   790.2917 国际货币经济学

  790.2921 国际金融学   790.2924 国际投资学   790.2927 国际收支理论   790.2931 美国经济

  790.2934 日本经济   790.2937 德国经济   790.2941 法国经济   790.2944 英国经济

  790.2947 俄罗斯经济   790.2951 欧洲经济   790.2954 北美经济   790.2957 亚太经济

  790.2961 拉美经济   790.2964 非洲经济   790.2967 中亚、西亚经济   790.2971 世界经济统计

  790.2999 世界经济学其他学科

790.31 国民经济学

  790.3110 国民经济计划学   790.3120 区域经济学   790.3130 消费经济学   790.3140 投资经济学

  790.3199 国民经济学其他学科

790.33 管理经济学

790.35 数量经济学

  790.3510 数理经济学   790.3520 经济计量学   790.3599 数量经济学其他学科

790.37 会计学

  790.3710 工业会计学   790.3720 农业会计学   790.3730 商业会计学   790.3740 银行会计学

  790.3750 交通运输会计学   790.3799 会计学其他学科

790.39 审计学

790.41 技术经济学

  790.4110 工程经济学   790.4115 工业技术经济学   790.4120 农业技术经济学   790.4125 能源技术经济学

  790.4130 交通运输技术经济学   790.4135 建筑技术经济学   790.4140 商业与物流技术经济学   790.4145 技术进步经济学

  790.4150 资源开发利用技术经济学   790.4155 环境保护技术经济学   790.4160 生产力布局技术经济学   790.4165 消费技术经济学

  790.4199 技术经济学其他学科

790.43 生态经济学

  790.4310 森林生态经济学   790.4320 草原生态经济学   790.4330 水域生态经济学   790.4340 城市生态经济学

  790.4350 区域生态经济学   790.4399 生态经济学其他学科

790.45 劳动经济学

  790.4510 就业经济学(包括劳动市场经济学)   790.4520 劳动管理学   790.4530 劳动统计学   790.4540 劳动社会学

  790.4550 劳动心理学   790.4560 劳动经济史   790.4599 劳动经济学其他学科

790.47 城市经济学

  790.4710 城市经济管理学   790.4720 城市土地经济学   790.4730 市政经济学   790.4740 住宅经济学

  790.4750 城郊经济学   790.4799 城市经济学其他学科

790.49 资源经济学

  790.4910 海洋资源经济学   790.4920 生物资源经济学   790.4930 矿产资源经济学   790.4940 能源经济学

  790.4950 资源开发与利用   790.4999 资源经济学其他学科

790.51 环境经济学

790.53 物资经济学

  790.5310 物资经济理论   790.5320 物资管理学   790.5399 物资经济学其他学科

790.55 工业经济学

  790.5510 工业发展经济学   790.5520 工业企业经营管理学   790.5530 工业经济地理   790.5540 工业部门经济学

  790.5550 工业经济史   790.5599 工业经济学其他学科

790.57 农村经济学

  790.5710 农村宏观经济学   790.5720 农村产业经济学   790.5730 农村区域经济学   790.5799 农村经济学其他学科

790.59 农业经济学

  790.5910 农业生态经济学   790.5920 农业生产经济学   790.5930 土地经济学(包括国土经济学、农业资源经济学等)

  790.5940 农业经济史   790.5950 农业企业经营管理   790.5960 合作经济

  790.5970 世界农业经济   790.5980 种植业经济学   790.5999 农业经济学其他学科

790.61 交通运输经济学

  790.6110 城市运输经济学   790.6120 铁路运输经济学   790.6130 航空运输经济学   790.6140 公路运输经济学

  790.6150 水路运输经济学   790.6160 综合运输经济学   790.6199 交通运输经济学其他学科

790.63 商业经济学

  790.6310 商业经济学原理   790.6315 商业企业管理学   790.6320 商品流通经济学   790.6325 市场学

  790.6330 商业心理学   790.6335 商业社会学   790.6340 商品学(包括商品包装与技术)   790.6345 商业物流学

  790.6350 商业经济史   790.6355 广告学   790.6360 服务经济学   790.6399 商业经济学其他学科

790.65 价格学

  790.6510 价格学原理   790.6520 部门价格学   790.6530 广义价格学   790.6540 成本管理学

  790.6550 价格史   790.6560 比较价格学   790.6599 价格学其他学科

790.67 旅游经济学

  790.6710 旅游经济学理论   790.6720 旅游经济管理学   790.6730 旅游企业管理学   790.6740 旅游事业史

  790.6799 旅游经济学其他学科

790.69 信息经济学

790.71 财政学

  790.7110 理论财政学   790.7120 资本主义财政学   790.7130 社会主义财政学   790.7140 比较财政学

  790.7150 财政思想史   790.7160 财政史   790.7170 财政管理学   790.7180 税务管理学

  790.7199 财政学其他学科

790.73 货币银行学

  790.7310 货币理论   790.7315 货币学说史   790.7320 银行学   790.7325 银行经营管理学

  790.7330 信贷理论   790.7335 投资理论   790.7340 金融市场   790.7345 农村金融学

  790.7350 金融史、银行史   790.7399 货币银行学其他学科

790.75 保险学

  790.7510 保险管理   790.7599 保险学其他学科

790.77 国防经济学

790.99 经济学其他学科  

810 政治学
810.10 政治学理论

  810.1010 比较政治学   810.1020 政治社会学   810.1030 政治心理学   810.1040 地缘政治学

  810.1050 中外政治学说史   810.1099 政治学理论其他学科

810.20 政治制度

  810.2010 政治制度理论   810.2015 议会制度   810.2020 行政制度   810.2025 司法制度

  810.2030 政党制度   810.2035 选举制度   810.2040 中国政治制度   810.2045 外国政治制度

  810.2050 比较政治制度   810.2055 中国政治制度史   810.2060 外国政治制度史   810.2099 政治制度其他学科

810.30 行政学

  810.3010 行政理论   810.3020 行政组织   810.3030 人事行政   810.3040 财务行政

  810.3050 行政决策   810.3099 行政学其他学科

810.40 国际政治学

  810.4011 国际关系理论   810.4014 国际关系史   810.4017 国际组织   810.4021 外交学

  810.4024 外交史   810.4027 国际比较政治   810.4031 美国政治   810.4034 英国政治

  810.4037 法国政治   810.4041 德国政治   810.4044 日本政治   810.4047 俄罗斯政治

  810.4051 欧洲政治   810.4054 北美政治   810.4057 亚太政治   810.4061 拉美政治

  810.4064 非洲政治   810.4067 中亚、西亚政治   810.4099 国际政治学其他学科

810.99 政治学其他学科  

820 法学
820.10 理论法学

  820.1010 法理学   820.1020 法哲学   820.1030 比较法学   820.1040 法社会学

  820.1050 立法学   820.1060 法律逻辑学   820.1070 法律教育学   820.1080 法律心理学(包括犯罪心理学)

  820.1099 理论法学其他学科

820.20 法律史学

  820.2010 中国法律思想史   820.2020 外国法律思想史   820.2030 法律制度史   820.2099 法律史学其他学科

820.30 部门法学

  820.3010 宪法学   820.3015 行政法学   820.3020 民法学   820.3025 经济法学

  820.3030 劳动法学   820.3035 婚姻法学   820.3040 民事诉讼法学   820.3045 行政诉讼法学

  820.3050 刑事诉讼法学   820.3055 刑法学   820.3060 刑事侦查学   820.3065 司法鉴定学

  820.3070 军事法学   820.3075 环境法学   820.3080 安全法学   820.3085 知识产权法学

  820.3099 部门法学其他学科

820.40 国际法学

  820.4010 国际公法学   820.4020 国际私法学   820.4030 国际刑法学   820.4040 国际经济法学

  820.4050 国际环境法学   820.4060 国际知识产权法学   820.4099 国际法学其他学科

820.99 法学其他学科

830 军事学
830.10 军事理论

  830.1010 马、恩、列、斯军事理论   830.1020 毛泽东军事思想   830.1099 军事理论其他学科

830.15 军事史

  830.1510 中国古代战争史   830.1520 中国近代战争史   830.1530 中国现代战争史   830.1540 世界战争史

  830.1550 军事思想史   830.1560 军事技术史   830.1599 军事史其他学科

830.20 军事心理学

830.25 战略学

  830.2510 战略学理论   830.2520 核战略学   830.2599 战略学其他学科

830.30 战役学

  830.3010 合同战役学   830.3020 海军战役学   830.3030 空军战役学   830.3040 导弹部队战役学

  830.3050 陆军战役学(包括炮兵战役学、装甲兵战役学)   830.3099 战役学其他学科

830.35 战术学

  830.3510 合同战术学   830.3520 陆军战术学(包括炮兵战术学、装甲兵战术学、工程兵战术学、通信兵战术学、防化兵战术学等)

  830.3530 海军战术学   830.3540 空军战术学   830.3550 导弹部队战术学   830.3599 战术学其他学科

830.40 军队指挥学

  830.4010 作战指挥   830.4020 军事系统工程(亦称军事运筹学)   830.4030 军事通信学

  830.4040 军事情报学   830.4050 密码学   830.4099 军队指挥学其他学科

830.45 军制学

  830.4510 军事组织体制   830.4520 军事装备学   830.4530 军队管理学   830.4599 军制学其他学科

830.50 军队政治工作学

  830.5010 军队思想教育工作学   830.5020 军队组织工作学   830.5099 军队政治工作学其他学科

830.55 军事后勤学

  830.5510 后勤组织指挥   830.5520 后方专业勤务   830.5599 军事后勤学其他学科

830.60 军事地学

  830.6010 中国军事地理   830.6020 世界军事地理   830.6030 军事地形学   830.6040 军事测绘学

  830.6050 军事气象学   830.6060 军事水文学   830.6099 军事地学其他学科

830.65 军事技术

830.99 军事学其他学科

840 社会学
840.11 社会学史

  840.1110 中国社会学史   840.1120 外国社会学史   840.1199 社会学史其他学科

840.14 社会学理论

  840.1410 社会学原理   840.1420 社会思想史   840.1499 社会学理论其他学科

840.17 社会学方法

  840.1710 社会调查方法   840.1799 社会学方法其他学科

840.21 实验社会学

840.24 数理社会学

840.27 应用社会学

  840.2711 职业社会学   840.2714 工业社会学   840.2717 医学社会学   840.2727 城市社会学

  840.2731 农村社会学   840.2734 环境社会学   840.2737 家庭社会学   840.2741 青年社会学

  840.2744 老年社会学   840.2747 犯罪社会学   840.2751 越轨社会学   840.2754 妇女问题研究

  840.2757 种族问题研究   840.2761 社会问题研究   840.2764 社会群体及分层问题研究   840.2767 社区研究

  840.2771 社会保障研究   840.2774 社会工作   840.2799 应用社会学其他学科

840.31 比较社会学

840.34 社会地理学

840.37 文化社会学

  840.3710 艺术社会学   840.3720 知识社会学   840.3730 道德社会学   840.3799 文化社会学其他学科

840.41 历史社会学

840.44 经济社会学

840.47 军事社会学

840.51 社会心理学

  840.5110 社会心理学史   840.5120 社会心理学理论与研究方法   840.5130 实验社会心理学   840.5199 社会心理学其他学科

840.54 公共关系学

840.57 社会人类学

840.61 组织社会学

840.64 发展社会学

840.67 福利社会学

840.71 人口学

  840.7110 人口学原理   840.7115 人口经济学   840.7120 人口社会学(包括老年人口学、妇女人口学、发展人口学等)

  840.7125 人口学说史   840.7130 人口史   840.7135 人口地理学   840.7140 人口生态学

  840.7145 区域人口学   840.7150 人口系统工程   840.7155 人口预测学   840.7160 人口规划学

  840.7165 人口政策学   840.7170 计划生育学   840.7199 人口学其他学科

840.99 社会学其他学科

850 民族学
850.10 民族问题理论

  850.1010 民族问题与民族政策   850.1020 民族关系   850.1030 民族经济   850.1040 民族教育

  850.1050 民族法制   850.1060 民族心理学   850.1070 少数民族政治制度   850.1099 民族问题理论其他学科

850.20 民族史学

  850.2010 民族史   850.2020 民族关系史   850.2099 民族史学其他学科

850.30 蒙古学

850.40 藏学

850.50 文化人类学与民俗学

850.60 世界民族研究

850.99 民族学其他学科

860 新闻学与传播学
860.10 新闻理论

  860.1010 新闻学   860.1015 马克思主义新闻理论   860.1020 西方新闻理论   860.1025 新闻法

  860.1030 舆论学   860.1035 新闻伦理学   860.1040 新闻社会学   860.1045 新闻心理学

  860.1050 比较新闻学   860.1099 新闻理论其他学科

860.20 新闻史

  860.2010 中国新闻事业史   860.2020 世界新闻事业史   860.2030 新闻思想史   860.2099 新闻史其他学科

860.30 新闻业务

  860.3010 新闻采访   860.3020 新闻写作   860.3030 新闻编辑   860.3040 新闻评论

  860.3050 新闻摄影   860.3099 新闻业务其他学科

860.40 新闻事业经营管理

860.50 广播与电视

  860.5010 广播电视史   860.5020 广播电视理论   860.5030 广播电视业务(包括广播电视采访、写作、编辑等)

  860.5040 广播电视播音   860.5099 广播与电视其他学科

860.60 传播学

  860.6010 传播史   860.6020 传播理论   860.6030 传播技术   860.6040 组织传播学

  860.6099 传播学其他学科

860.99 新闻学与传播学其他学科

870 图书馆、情报与文献学
870.10 图书馆学

  870.1010 图书馆学史(包括图书馆事业史)   870.1015 比较图书馆学   870.1020 图书馆社会学

  870.1025 图书馆管理学(包括图书馆统计学、图书馆经济学等)   870.1030 图书馆建筑学   870.1035 图书采访学   870.1040 图书分类学

  870.1045 图书编目学(包括目录组织法、文献著录方法、计算机编目等)   870.1050 目录学(包括普通目录学、专科目录、目录学史等)

  870.1055 图书馆服务学(包括读者心理学、读者咨询学等)   870.1099 图书馆学其他学科

870.20 文献学

  870.2010 文献类型学   870.2020 文献计量学   870.2030 文献检索学   870.2040 图书史

  870.2050 版本学   870.2060 校勘学   870.2099 文献学其他学科

870.30 情报学

  870.3010 情报学史(包括情报事业史)   870.3015 情报社会学   870.3020 比较情报学   870.3025 情报计量学

  870.3030 情报心理学   870.3035 情报管理学   870.3040 情报服务学(包括情报用户研究等)   870.3045 情报经济学

  870.3050 情报检索学(包括情报检索语言等)   870.3055 情报系统理论(包括情报系统分析与设计、情报网络建设理论等)

  870.3060 情报技术   870.3065 科学技术情报学   870.3070 社会科学情报学   870.3099 情报学其他学科

870.40 档案学

  870.4010 档案学史(包括档案事业史)   870.4020 档案管理学   870.4030 档案保护技术学   870.4040 档案编纂学

  870.4099 档案学其他学科

870.50 博物馆学

870.99 图书馆、情报与文献学其他学科

880 教育学
880.11 教育史(包括中国教育史、外国教育史等)

880.14 教育学原理

880.17 教学论

880.21 德育原理

880.24 教育社会学

880.27 教育心理学

880.31 教育经济学

880.34 教育管理学

880.37 比较教育学

880.41 教育技术学

880.44 军事教育学

880.47 学前教育学

880.51 普通教育学(包括初等教育学、中等教育学等)

880.54 高等教育学

880.57 成人教育学

880.61 职业技术教育学

880.64 特殊教育学

880.99 教育学其他学科

890 体育科学
890.10 体育史

890.15 体育理论

890.20 运动生物力学(包括运动解剖学等)

890.25 运动生理学

890.30 运动心理学

890.35 运动生物化学

890.40 体育保健学

890.45 运动训练学

890.50 体育教育学

890.55 武术理论与方法

890.60 体育管理学

890.65 体育经济学

890.99 体育科学其他学科

910 统计学
910.10 统计学史

910.15 理论统计学

  910.1510 统计调查分析理沦   910.1520 统计核算理论   910.1530 统计监督理论   910.1540 统计预测理论

  910.1550 统计逻缉学   910.1599 理论统计学其他学科

910.20 统计法学

910.25 描述统计学

910.30 经济统计学

  910.3010 宏观经济统计学   910.3020 微观经济统计学   910.3099 经济统计学其他学科

910.35 科学技术统计学

910.40 社会统计学

  910.4010 教育统计学   910.4020 文化与体育统计学   910.4030 卫生统计学   910.4040 司法统计学

  910.4050 社会福利与社会保障统计学   910.4060 生活质量统计学   910.4099 社会统计学其他学科

910.45 人口统计学

910.50 环境与生态统计学

  910.5010 自然资源统计学   910.5020 环境统计学   910.5030 生态平衡统计学   910.5099 环境与生态统计学其他学科

910.55 国际统计学

  910.5510 国际标准分类统计学   910.5520 国际核算体系与方法论体系   910.5530 国际比较统计学   910.5599 国际统计学其他学科

910.99 统计学其他学科
主动学习通过一定的算法查询最有用的未标记样本,并交由专家进行标记, 然后用查询到的样本训练分类模型来提高模型的精度。

主动学习能够选择性地获取知识,通过较少的训练样本获得高性能的模型,最常用的策略是通过不确定性准则和差异性准则选取有效的样本。
https://www.itjuzi.com

http://www.199it.com/archives/526832.html

http://news.hexun.com/2017-06-25/189775884.html

https://www.iyiou.com/p/74100
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向,研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,涉及的领域较多,主要包括[[机器翻译]]、[[机器阅读理解]]和[[问答系统]]等。 


技术提供商


!![[小度]]

!![[思必驰]]	

中国	智能语音交互和自然对话	车载、智能家居和智能机器人等智能硬件的语音交互服务	C 轮融资 2 亿人民币	

!![[云知声]]	

中国	语音技术和自然语言处理	车载、医疗和智能家居等物联网的智能语音解决方案	B 轮融资 5 千万美元	


!![[Echo]]

!![[天猫精灵]]

天猫精灵是阿里巴巴人工智能实验室(Alibaba A.I.Labs)于2017年7月5日发布的AI智能产品品牌,天猫精灵X1采用了专门为智能语音行业开发的芯片,在解码,降噪,声音处理,多声道的协同等方面做了专门的优化处理。


!![[海知智能ruiyi.ai]]

海知智能是一个虚拟智能助理及人工智能技术平台,产品有说说日历、如意虚拟智能助理,为智能硬件、机器人和移动应用提供自然语言理解和开放知识图谱 API&SDK;

!![[出门问问]]	

中国	语音技术和自然语言处理	智能手表和车载智能语音应用	累计融资 7500 万美元	


!!自然语言处理NLP

!![[X.AI]]	

美国	自然语言处理	个性化智能助理	三轮融资 3.4 亿美元	

!![[ROSS Intelligence]]	

美国	认知计算、深度学习、自然语言处理	法务研究智能辅助工具		

!![[Api.ai]]	

美国	语音识别,自然语言处理, 人工智能	自然语言交互系统	四轮融资 860 万美元	

!![[Maluuba]]	

加拿大	自然语言处理	自然语言理解的基础研究,智能设备的自然交互应用	两轮融资 1100 万美元	

!![[Synapsify]]	

美国	自然语言处理	用于对内容的加速发现、观点提取和建议。	两轮融资 145 万美元	




!![[KITT.AI]]	

中/美	自然语言处理	聊天机器人平台 ChatFlow		


!![[Observe.AI]]

ObserveAI是一个人工智能客户服务软件,对邮件、语音通话和网上聊天的内容进行分析。软件通过自然语言处理技术(NLP)和深度学习技术,分析用户的对话言语,并且协助销售


!![[科大讯飞]]	

中国	语音技术和自然语言处理	输入法,教育、电信等行业解决方案	市值约 368 亿人民币	
!![[HRTech]]

HRTech是一家致力于为人力资源行业提供人工智能技术的科技公司,帮助企业客户构建自己的聊天机器人

!![[今日头条]]	

中国	深度学习、自然语言处理、图像识别	媒体产品的应用	估值约 120 亿美元	


!![[miswaytech麦思威]]

miswaytech麦思威是一家实时语音识别翻译设备生产商,专注于实时语音翻译设备、自动语音识别,机器翻译等AI技术的整合和消费应用,隶属于麦思威科技(深圳)有限责任公司


!![[帝派智能]]

帝派智能是一家专注于语音交互技术,致力于实现真正的人机交互智能的公司,其业务包含语音识别、语音合成、自然语言理解相关的自然语音交互技术研究和应用,自然语音交互技术广泛应用于自动语音应答、智能客服、交互等场景


!![[风语者机器人]]

风语者机器人是一家人工智能客服机器人,提供在线客服、电话客服、云知识库、智能客服聊天机器人等基础服务,北京中通网络通信股份有限公司旗下产品

!![[S先生]]

S先生是一家对话式人工智能研发商,专注为高端服务行业设计、开发、训练具备真人专家级能力的服务类Virtual Agent,提供具备自然对话开展深度服务的人工智能。上海茗日智能科技有限公司旗下

!![[控石智能]]

控石智能是一家人工智能产品研发企业,专业从事自动化生产线,工业机器人,电子产品自动检测系统,智能立体仓储系统研发和方案实施。致力于打造智能工厂、智慧工厂、未来工厂的先进自动化解决方案


!![[画心科技]]

画心科技是一个语音控制智能终端提供商,业务领域有深度学习、语意理解、情景识别、多轮对话、知识图谱构建、搜索引擎以及智能软硬件产品开发等,致力于为用户提供前沿的语音智能技术


!![[智义科技]]

智义科技是一家通过运用深度学习、本体知识库、NLP等方法,提供智能问答服务的软件公司。专注于人工智能、领域知识库、语义网、大数据挖掘分析技术的研究和开发;为各行业客户提供针对性解决方案和服务

!![[Mesoor麦穗人工智能]]

Mesoor是一家AI招聘服务提供商,专注于为大型招聘网站、企业开发引擎,运用智能语义解析,切分并提取候选人简历的核心内容,形成包括候选人的期望薪资、期望的工作地点、简历新鲜度、学历状况、工作经历等150多个维度


!![[方寸科技]]

方寸科技专注于运用大数据、人工智能(AI)与自然语言处理(NLP)技术,通过长期对技术和市场的跟踪与积累,形成具有自主知识产权的知识云底层大数据核心平台——“方寸智能校对与知识审核系统”和“方寸舆情监测系统


!![[中译语通]]

中译语通是一个专注于大数据分析、机器翻译、机器学习、语义搜索和深度神经网络的企业,旗下有“译见”大数据分析平台、“译云”语言服务平台和“译库”专业工具平台,是全球领先的跨语言大数据服务提供商





!![[YeeJay悦智捷科技]]

YeeJay悦智捷科技是一家教育服务公司,公司致力于将互联网科技融入到教育的过程中,以愉快的方式掌握有效的学习方法,公司目前主要的业务为基于人工智能及多媒体技术的中文分级阅读移动互联网解决方案



!![[音乐雷达DoReSo]]

音乐雷达DoReSo是一款音乐识别服务APP,为您识别正在播放或哼唱的歌曲




!![[海天瑞声]]

海天瑞声是一个人工智能数据资源和数据服务提供商,致力于为全球用户提供高品质的大规模工程化数据资源、以及数据采集制作、数据深度加工、数据分析处理等服务,隶属于北京海天瑞声科技有限公司




!![[易码云天Cella]]

北京易码云天科技是一家企业级服务BOT机器人服务提供商,为企业提供社交消息应用的交互平台,搭建全球的BOT Directory,致力于做打通海内外的全球企业服务



!![[幽联信息]]

幽联信息是一家人工智能技术公司,掌握了人工智能的多轮对话核心技术,能让机器人听懂人自然而然说出来的语句,实现自动与人工坐席无缝协作。此外,公司还开发了全球在线教育的知识地图引擎,非结构化大数据分析技术




!![[Aibee]]

AIbee爱笔是一家人工智能行业应用解决方案提供商,基于计算机视觉、语音识别、自然语言理解、大数据推测和预测等技术,为行业提供整体解决方案,致力于深度赋能传统行业,实现产业升级

!![[Voicera]]

Voicera的人工智能助手Eva能通过自然语言处理和语音识别技术来制作文字稿,识别任务分配以及会议中的其他重要事件。为了制作会议笔记,Eva集成了思科的WebEx、BlueJeans、Zoom、UberConference以及Skype等视频会议服务


!![[深思考人工智能]]

深思考是一家人工智能领域的高科技公司,公司专注于类脑智能机器人核心算法(机器学习、中文自然语言处理NLP、深度学习、机器视觉)软件及服务。公司核心团队由来自于中科院自动化所、软件所、计算所、半导体所等


!![[探迹]]

探迹是一家智能销售服务提供商,致力于用大数据和人工智能(AI)技术帮助企业全面提升销售效率。通过不断挖掘和分析全网信息,构建全网最全的超一亿家企业的知识图谱,并在此基础上结合NLP、机器学习算法等领先技术,



!![[中一科技]]

中一科技是一家专注于智慧家居和智慧社区解决方案及智慧社区生态建设的创新型公司,公司通过语音交互、人工智能等先进科技,致力改善人居环境及品质,让生活更智慧更美好


!![[宏云智能]]

宏云智能是一家智慧住宅服务提供商,定位于深度整合人工智能, 云平台服务, 语音识别, 居家环境监测和物联网等多方面前沿科技成果,致力于为住宅用户提供更加智慧舒适安全便捷的生活


!![[AppZen]]

AppZen是一家企业服务人工智能公司,致力于使用机器学习算法和自然语言处理技术自动化和分析欺诈费用报告



!![[能格科技]]

杭州能格科技,专注于社会化大数据的自然语言处理、机器学习和统计分析。旗下产品包括信息的搜索引擎"聚观点"、量化用户评价的商品排行榜的"能格良品"、比价插件"郎擎比价"等


!![[原点参数]]

原点参数是一家商业数据服务提供商,基于对信息技术的掌握,在数据获取与结构化处理过程中,运用包括自然语言处理技术、机器学习、数据挖掘和大数据等技术,为用户提供数据解决方案


!![[商法通]]

商法通是一家在线法律咨询服务平台,为中小微企业提供法律咨询服务,真正做到了0咨询费、0年费,南京商法通法律咨询服务有限公司旗下网站


!![[深度好奇]]

深度好奇是一家专注于中国语言智能领域研究的公司,公司致力于深度学习、自然语言处理等方向技术开发,探索理解人类语言的算法,创造服务于行业的人工智能。隶属于深度好奇(北京)科技有限公司


!![[兰邻科技]]

兰邻科技是一个人工智能及物联网领域的智能产品及解决方案供应商,主要从事智能图像算法、自然语言处理研究和人工智能等技术的研发


!![[CareNexis]]

CareNexis是一家个人护理解决方案提供商,致力于解决与个人护理相关的复杂挑战,用AI、机器学习和自然语言处理提供个人护理解决方案

!![[阡寻科技]]

阡寻科技是一家基于人工智能技术的证券数据服务提供商,通过运用自然语言处理、知识图谱等人工智能技术,开发证券分析辅助产品,帮助用户减轻证券行业重复性的工作

!![[会牛科技]]

会牛科技是一家专注于人工智能技术的机器人投顾平台的企业,公司主要专注于人工智能技术、大数据、自然语言处理等相关产品的研发,旗下会牛股票致力于为广大股民提供个性化智能选股服务平台


!![[品智能量]]

品智能量是一家汽车领域自然语言处理应用研发商,公司研发的产品可应用在行车驾驶中、维修、美容、汽车保险等领域,隶属于北京品智能量科技有限公司

!![[AI全能面试官]]

AI全能面试官是一个AI招聘服务平台,平台核心产品为AI RecruiTas ,该产品基于自然语言处理技术,可实现巨量线程同时在线面试,致力于通过人工智能技术的支持为中国企业HR提升管理效能

!![[Gamalon]]

Gamalon是一家美国机器学习技术服务商,专注于自然语言处理的机器学习系统,自主研发了一个可以自动构建树的产品Idea Studio,带着问题而来的用户能更快找到答案,分析师或数据科学家能建立起动态的决策树


!![[息息人工智能]]

息息(自然语言处理)成立于2016年,是中国领先的新兴人工智能应用型企业。从事认知计算,自然语言理解为核心的人工智能研发创新,提供人与设备,设备与设备之间的智能交互方案。

!![[Bello]]

Bello是一家基于AI的自动化招聘系统研发商,为用户提供AI+顾问、职场数据、招聘SaaS服务;系统定期更新候选人数据库,同时机器自动扫描全部候选人,帮助企业找到合适的人才,降低招聘的单位成本

!![[昇星科技]]

拥有国内顶尖核心技术,包含计算机视觉、人工智能、人脸识别、图像三维云识别、SLAM、语音识别等,用大数据解决行业难题。主营产品有基于计算机视觉技术的大数据推荐移动端平台—观见


!![[龙猫数据]]

龙猫数据是一家专业的人工智能数据服务提供商,致力于提供人工智能大数据采集、数据标注、数据提取、数据校验、数据清洗、线上众包等服务,服务领域涵盖图像、语音、文本、视频四个方面,隶属于北京安捷智合科技有限


!![[慧听科技]]

慧听科技是一家数据服务提供商。服务于国内外大中型企业,为客户提供高质量快捷的数据服务。包括语言语音、多媒体两大类几十余种数据服务


!![[空谷幽兰人工智能科技]]

空谷幽兰人工智能科技是一家专注于人工智能技术研究与应用的公司,公司致力于医疗健康领域上人工智能技术的开发和应用,通过语音交互、机器学习等人工智能的技术手段,为用户提供自我健康管理服务


!![[Witlook云熙科技]]

云熙科技致力于K12阶段的智能互动教学,通过自然语言处理(NLP)、机器学习(ML)、数据挖掘(DM)技术以及人工技能(AI)探究,优化教与学,提供一整套覆盖课前、课中与课后的一体化智能教学解决方案



!![[七奇智能]]

七奇智能是一家服务型影像虚拟人研发商。致力于为各行各业提供服务型“影像虚拟人”软硬件产品,这种虚拟人产品的特点是无需实体机器人复杂的机械结构,而是通过投影或大屏呈现3D立体形态,通过语音视觉进行自然交互


!![[智能一点]]

智能一点是一家基于人工智能技术提升语音智能交互解决方案的公司,智点交互推荐系统是行业第一家基于自然语言交互和内容个性化推荐技术搭建的AI平台。


!![[声智科技]]

声智科技是一家人工智能交互与声学解决方案服务商,从事语音交互芯片、模组和设备研发、设计、制造并提供整体声学技术解决方案

!![[智矩机器人]]

智矩机器人是一家智能语音机器人研发商,研发了智能语音呼叫中心及查询交易系统,可替代人工坐席客服自动接听电话、回答问题、精准查询信息、接受和执行指令,并可全程自动语音处理商务业务流程和商务工作

!![[MECHA机甲智能]]

MECHA机甲智能是一家基于自然语言处理和深度学习去提高内容生产效率的公司,提供新闻资讯的标题、摘要、分类和标签的自动化生成,简化内容生产流程,减少同质内容流动并优化人力成本,隶属于深圳市知物畅想科技

!![[思依暄]]

思依暄是一家家庭陪伴机器人研发商,专注于研发拥有动作、情感、语言、表情的家庭服务机器人,通过全语音沟通取代触摸交换,加入人性化的智能设置,为家居生活提供智能厨房、远程视频、家电中控、家居布防、远程教育

!![[一芯智能]]

一芯智能是一家为企业提供搭载人工智能的智能语音服务解决方案的公司,主打产品晓芯电话机器人,是企业电销和客服精英在专注于服务用户的智能化标配利器

!![[启英泰伦]]

启英泰伦是一家专注于物联网人工智能芯片,并提供相关集成电路设计和配套应用解决方案的集成电路设计公司。针对该市场需求开发了智能语音神经网络处理芯片,可为智能家电、智能机器人等智能产品提供智能语音识别产品

!![[上海犀木]]

AIORS是一家从事各类机器人人工智能的研发工作的公司,团队来自西工大智能声学与临镜通信研究中心、上海交大机器视觉团队、上海交大语音处理团队、上海人工智能团队等,隶属于上海犀木信息技术有限公司


!![[E伴]]

e伴是一个老人行为识别及亲情关爱服务系统,以智能提醒机和手机软件为工具,自动识别数十种生活场景中的安全、异常、健康、生活风险,及时提醒家人和服务机构,隶属于亦伴(北京)信息科技有限公司


!![[奇梦者]]

奇梦者致力于儿童教育娱乐产业的智能化,以智能人机交互为核心,整合IP、教育内容,提供云+端+教育+硬件的智能交互方案,帮助儿童教育娱乐产品完成智能化升级,衍生更多教育商业价值


!![[爱数智慧]]

爱数智慧是一家专注于语音识别和人工智能领域的数据服务商,以智能语音和自然语言理解等方面的技术为核心,为在语音识别和人工智能领域的客服提供数据采集、设计、计算等服务

!![[普强科技]]

普强信息技术(北京)有限公司是一家以智能语音识别和语言处理技术产业化为主要发展方向的科技公司


!![[云思创智]]

云思创智是一家人工智能算法应用平台,将人工智能深度学习技术中机器视觉和自然语言理解相结合,提供基于视觉、自然语言等大数据的人工智能算法应用PaaS平台。现应用于工业、政府、金融、医疗等领域

!![[步讯信息]]

步讯信息是一家致力于计算机通信领域产品开发和集成的高科技企业,是中国知名呼叫中心整体解决方案提供商。其核心产品BOOCENTER语音系统包括CTI、IVR、ACD、RECORD、AGENT、REPORT、会议、TELSALES、CRM等多媒体通信产品

!![[童木信息]]

童木信息是一家人工智能语音外呼系统研发商, 作为一家从事人工智能语音解决方案公司,致力于将电话营销人员从繁重的工作中解放出来,让电话营销变得更容易,通过人工智能语音的学习提升,大提升企业营销效率,助力


!![[大坝科技]]

大坝科技是一家通信、AI智能和大数据技术服务提供商,致力于提供基于云端的多媒体能力开放平台,为OA、CRM、ERP厂商提供PaaS服务,旗下拥有智能云端通信营销管理平台“悟空话务机器人”,为用户提供智能语音交互服务


!![[声瀚科技]]

声瀚科技是一家智能声纹识别技术研发商,利用语音识别、声纹识别、自然语言处理等核心技术研发了语音识别云服务,可为企业提供专业的语音私有云定制服务,主要业务涵盖嵌入式系统及语音识别云服务两大模块


!![[亿咖通]]

亿咖通是一家智能行车助手研发商,研发了小咖驾车APP,能够智能便捷地满足用户在开车时对语音操控、听歌、通话、导航等需求,具有根据喜好智能推荐音乐、语音操控导航、实时通讯等功能

!![[龙猫数据]]

龙猫数据是一家专业的人工智能数据服务提供商,致力于提供人工智能大数据采集、数据标注、数据提取、数据校验、数据清洗、线上众包等服务,服务领域涵盖图像、语音、文本、视频四个方面,隶属于北京安捷智合科技有限


!![[Atidot]]

Atidot是一家位于以色列的科技初创公司,已经构建了首个与保险数据相关的数据云。Atidot利用AI、机器学习和预测分析技术,使人寿保险公司和企业年金规划机构能够制定数据驱动的业务决策



!![[Planck Re]]

保险承保服务解决方案提供商,专注于美国市场,利用人工智能技术,致力于通过在互联网上搜索公开的数据,建立寻求保险的中小企业资料,并对其风险进行分析,进而简化用户风险评估流程


!![[Cape Analytics]]

Cape Analytics是一个美国人工智能自动化财产承保平台,开发了一个云平台获取地理图像,包括户外图片和卫星图片,将图像置入内部平台后通过计算机视觉和深度学习算法理解并提取结构化数据,以此帮助保险公司

!![[保挣科技]]

保挣科技是一家基于AI人工智能的车险服务平台,服务广阔的车险销售渠道、代理人与保险公司,使用AI技术提升业务的整体质量,并将节省下的车险保费与保险公司、渠道及终端车主共享

!![[Fireradar]]

Fireradar是大数据反欺诈服务提供商,致力于利用大数据分析技术为各类互联网公司提供针对可疑用户和各种互联网欺诈行为的早期安全预警服务。其产品可以进行早期安全检测,并实现全生命周期的风险监控和分析

!![[数美科技]]

数美科技是一家大数据综合解决方案服务商,专注于金融、电商、直播、社交和支付领域,提供基于开放架构的风险控制、反欺诈SaaS云服务、精准营销等大数据整体解决方案,核心产品包括:Data-R 风险决策系统、Data-X垃圾文本

!![[桑葛石信息]]

桑葛石信息技术咨询(成都)有限公司是一家人工智能风险控制管理系统集成开发计算机服务公司,基于专业研究分析提供买方市场前置风险管理、投中风险预警、投后专业管理IT系统开发及服务应用

!![[青橙车险]]

青橙车险是一家专注于保险行业的信息化升级,为保代公司和保险代理团队提供车险智能化解决方案的企业,致力于输出车险投保全流程独立管理系统,改变保险行业效率低下的运营模式,降低保代公司的运营成本


!![[北京中数智汇]]

北京中数智汇是一家基于大数据的商业数据和征信服务提供商,通过收集和整合各类公开数据源,为客户提供高质量的数据服务,为信用风险管理、营销管理、企业宏观决策提供有力的支持
!![[DetlaGrad]]

DetlaGrad是一家基于人工智能的量化投资公司,输入股票交易数据,利用不同结构的神经网络训练针对A股的量化交易模型,模型包含市场顶部风险预警和个股及大盘未来上涨概率预测、策略发现和仓位调整、系统性风险预测



!![[龙天科技]]

龙天科技是一家人工智能交互式系统开发商,拥有具备自主知识产权的人工智能技术,现阶段正在开发一款女娲智脑——全理解式智能计算平台以及第一代全理解式问答系统——“女娲全理解式智能问答交互系统”


!![[Aegis擎盾]]

Aegis擎盾是一家基于人工智能技术的法律咨询服务产品提供商,旗下的智能法律问答机器人以有法律咨询需求的普通用户为服务对象,运用人工智能算法+法律知识图谱技术,以智能硬件为载体,为用户提供法律咨询服务


!![[Parlamind]]

Parlamind 是一家提供人工智能客户服务平台服务的初创公司,致力于为电子商务公司客户服务构建下一代人工智能技术,可以支持定位、分析、自动回答客户所提出的各类问题,优化客户服务体验

!![[Spoke]]

Spoke是一家信息自动应答服务提供商,利用人工智能来帮助企业解决自动化信息请求,通过回答IT和人力资源相关的问题来节省人们的时间

!![[安徽声讯]]

安徽声讯是一家致力于语音技术应用的研发和智能语音解决方案的公司。从事语音软件和硬件定制开发、生产制造及销售。通过推进智能语音识别、语音合成等软件技术产业化,紧扣信息消费热点,开发智能终端产品,搭建信息


!![[爱特曼]]

北京爱特曼科技有限公司是由微软亚洲研究院(MSRA)和微软搜索技术中心(Bing STC)的资深技术专家成立的创业公司,以消弭人类跨语言沟通障碍为己任,聚焦世界领先机器翻译和文字智能技术的研发和应用,追求语言认知计算



!![[君林科技]]

君林科技成立于2016年,是一家专攻固定短语和自由文的声纹识别技术服务商,提供包含智能电视、智能音箱、车联网等智能家居和工业落地场景的技术服务



!![[新译科技]]

新译科技是一家利用人工智能和大数据技术提供互联网以及移动互联网服务与应用的高科技公司,致力于以机器翻译和语音识别等技术为基础,向用户提供在线机器翻译、在线辅助翻译平台和互联网语言服务平台等一系列关于翻


!![[捷通华声灵云]]

灵云是捷通华声旗下的语音开放平台、是一个全方位人机交互感知云,产品包括小唐龙司机助手、天行语音斗地主、HCI解决方案等,隶属于北京捷通华声语音技术有限公司



!![[无忧链客]]

无忧链客是一苇智能自主研发的一款智能语音电话机器人,专注于为企业提供搭载人工智能的智能语音服务解决方案


!![[ThinkingGame数数科技]]

ThinkingGame是一家专注于游戏行业的舆情分析服务平台,提供全球领先的自然语言处理和文本挖掘技术。用户可获取全方位、实时的玩家行为数据、玩家反馈及产品舆情,以优化产品体验,实现精益化运营,用数据驱动用户和营收


!![[纳人网络]]

北京纳人网络是一家在线招聘服务提供商,致力于通过大数据+人工智能解决人岗匹配的难点为白领招聘提供服务


!![[驰声科技]]

驰声科技是一家专注于教育领域的语音技术服务商,拥有自主知识产权的发音评测、有限分支语音识别、表达能力评估等语音技术。评测技术支持中英文的字、词、句、段落发音评分,以及看图说话、故事复述等题型


!![[浩泊云动hopperclouds]]

成都浩泊云动科技有限公司(hopperclouds)专注于招聘和人力资源服务,基于数据挖掘及人工智能提供服务,旗下产品有聘宝、聘窗等


!![[Datahorizon数据地平线]]

智能金融研究团队的成果商业化平台,致力于人工智能、区块链、大数据、自然语言处理、知识图谱等技术在智能金融领域的研究与应用,旨在以最新前沿技术为驱动力,颠覆传统金融定义,赋能金融服务机构


!![[艾耕科技]]

艾耕科技是一家人工智能技术服务商,基于自然语言处理、深度学习、语义理解等系列技术,并结合相关行业场景,致力于为企业及个人用户提供人工智能行业技术解决方案,涉及领域涵盖语音识别、聊天机器人、图像视频处理




!![[林飞信息]]

林飞信息是一家软件技术领域的公司,专业从事智能语音及语言技术、人工智能技术研究,软件及芯片产品开发,语音信息服务及电子政务系统集成等服务



!![[VocalIQ]]

VocalIQ是一家来自英国的语音技术与人工智能公司,尤其专注于汽车市场,可以让计算机更准确地预测并执行用户发出的指令



!![[TalkIQ]]

TalkIQ是一家人工智能客户服务提供商,为企业提供语音识别的人工智能引擎,通过分析企业客服代表与客户的通话,来了解优化工作流程的关键部分,以及通过分析与客户对话的语音数据来更准确地预测销售收益和损失,以及客



!![[Woobo]]

Woobo是一家基于人工智能技术驱动的交互式机器人开发公司。目前该公司仍处于核心技术的研发阶段,主要涉及技术包括人工智能、人机交互、语音问答和机器人


!![[Gong.io]]

Gong.io是一家人工智能创业公司,专注于用大数据解析教会销售人员谈判项目的研发,将对话视作未经处理的语音大数据,运用数据分析技术去分析谈话的进行


!![[Semantic Machines]]

Semantic Machines是一家基于人工智能和大数据的语音识别技术公司。让计算机具有沟通能力,理解对话,可以协助人类



!![[Hiretual]]

Hiretual是一个人工智能招聘服务平台,通过AI识别出来自网络的候选人,确保候选条件匹配,然后通过电话和电子邮件直接联系候选人,不同的招聘阶段跟踪每位候选人,最终确定被聘用者,旗下产品有Hiretual Pro、Chrome扩展程序





!![[大象声科]]

总部位于深圳,是一家全球领先的致力于机器听觉的人工智能公司, 也是目前全球首个成功落地芯片级单通道人工智能降噪方案的技术提供商。 公司云集了以俄亥俄州立大学杰出学者、IEEE Fellow汪德亮教授


!![[标贝科技]]

一家全球领先的语音合成、语音识别、图像识别等人工智能数据服务提供商,包括:语音数据、图像数据、文本数据等多种类型。 公司成立于2016年2月,总部位于北京,并在全国范围内有多个合作密切的专业数据采集


!![[意达语意解析引擎]]

意达语意解析引擎是一个针对中文语句进行语义切词、并智能匹配和应答数据接口的技术平台,为开发者提供中文语意解析SDK接口服务,可用于语音O2O生活服务等


!![[互问科技]]

互问科技是一家人工智能领域的创业公司,目前已开发的语音交互解决方案,包括语音输入部分、麦克风阵列处理技术、从儿童角度出发的儿童知识图谱、拥有智能家居专用语义解析系统,用户可定制化的语义云平台,打造专业



!![[东芝中国]]

东芝中国研发中心是一个致力于语音技术和自然语言处理技术研发的公司,专注于中文语音识别、中文语音合成及多语言的机器翻译、辅助翻译、语言分析,研究成果已经广泛地应用到了PC、车载、移动通信等领域


!![[奥智网络]]

奥智网络是一家奥智网络通过将人工智能和语义识别技术应用于智能家居领域,为该领域的企业提供语音数据解析服务,为用户提供家用电器设备的智能化解决方案


!![[音书科技]]

帮助听障人与健听人正常沟通的服务研发商,致力于通过人工智能等技术,实现在任何场景下语音与文字的转化,公司旗下产品有音书APP及可将手语和语音、语音和字幕互转的AR硬件眼镜,帮助每一位听障人士




!![[灵呼宝]]

灵呼宝是一个AI语音机器人,专注于真人语音交互,进行产品电销与客户回访,致力于帮助企业提升电话营销与服务效率。它是灵硅科技(北京)有限公司开发的一款产品


!![[思必驰]]

思必驰由剑桥大学团队创立于2007年,2008年回国创业。是国内唯一拥有人机对话技术,国际上极少数拥有自主产权、中英文综合语音技术的公司之一,先后获得三轮融资。思必驰是国内专注于智能硬件领域的语音公司


!![[中一科技]]

中一科技是一家专注于智慧家居和智慧社区解决方案及智慧社区生态建设的创新型公司,公司通过语音交互、人工智能等先进科技,致力改善人居环境及品质,让生活更智慧更美好


!![[嘿啪]]

嘿啪是一个智能音乐谱曲APP研发商,公司将人工智能、机器学习算法等技术同音乐相结合,用户只需在手机APP独白功能上进行录音,系统将自动识别并进行合成,之后便能够把语音转换成歌曲


!![[宏云智能]]

宏云智能是一家智慧住宅服务提供商,定位于深度整合人工智能, 云平台服务, 语音识别, 居家环境监测和物联网等多方面前沿科技成果,致力于为住宅用户提供更加智慧舒适安全便捷的生活



!![[会速记]]

会速记是一家人工智能和语音识别技术为基础的高科技企业,提供语音智能速记、语音转写为一体的智能速记服务和速记软件产品,目前已成功为多家金融机构,培训机构、教育机构提供语音转文字服务



!![[福建好牛科技]]

是以“赋予万物与你对话的能力”为使命的人工智能高新技术企业,公司立足于人工智能领域的应用和发展,融合深度学习算法、大数据、智能传感技术,以智能语音交互为起点,构建涵盖家庭、出行、工作多种人


!![[数据魔方]]

数据魔方智慧科技是一家人工智能大数据资源服务企业,致力于人工智能的数据服务商。公司技术主要集中在智能语音和自然语言理解等方面。为语音识别和人工智能领域的客户提供全方位的数据采集、制作、设计、计算等服务



!![[必柚科技]]

必柚科技提供一套实时的客户画像SaaS系统,基于券商大数据深度挖掘进行客户画像分析,帮助金融机构全面地了解客户。主打产品为必柚情绪分析系统,通过扫描全网的非结构化文本和语音数据,挖掘自然语义,提供实时的市场情况


!![[人马互动]]

齐悟是人马互动创立的人工智能品牌,我们致力于为企业打造智能化、差异化产品提供深度定制化语音交互技术解决方案。齐悟机器人涵盖语音识别、语义识别、语音合成和嵌入式硬件模组



!![[悟空智慧]]

悟空是一家人工智能语音交互服务提供商,主要专注于大数据和人工智能技术,以让企业经营更高效为使命,为客户提供基于云、大数据和人工智能的场景化解决方案,建立了以技术驱动创新,以产品驱动市场,以赋能合作伙伴


!![[aimsay]]

成立于2015年,是一家专注人工智能的高科技创新型企业,旗下产品为智能工作助手“aimsay”,为企业、个人提供智能化工作助理产品与解决方案,引领企业、员工走向轻松、智能、高效的新型工作


!![[灵伴科技]]

灵伴科技是一家智能语音技术领域的创业公司,主要专注于语音抗噪、语音识别、语音合成和语言理解核心技术的研发,并开展移动互联网、智能汽车、智能家电、呼叫中心、教育、金融等不同领域的深度应用业务。公司核心成



!![[Vi]]

为客户打造身体和心灵上的双重人工智能伴侣,所以第一步是提供良好的、基于语音的跑步体验。


!![[上海优同科技]]

上海优同科技有限公司专业从事语言、语音技术和人脸动画等人机交互技术研发与应用,已开发出中文语音合成引擎及多国语言语音合成引擎、语音识别和人脸动画引擎等

!![[广州市云润大数据]]

广州市云润大数据专注于从事人工智能、大数据、云计算、企业级软件开发等服务,自主研发了分布式爬虫、中文文本处理、智能音视频处理、搜索引擎、个性化推荐引擎等产品,核心业务包括舆情与媒体大数据、企业级数据


!![[傲硕科技]]

傲硕科技是一家汽车领域智能语音解决方案提供商,专注于从事智能语音应用技术研发,致力于为汽车制造厂商、汽车电子厂商、车联网运营商等行业用户提供高品质的智能语音交互整体解决方案。



!![[天润融通VLink]]

VLink是一个智能语音云平台,为企业和开发者提供SaaS模式的呼叫中心及语音通信服务,北京天润融通科技有限公司旗下产品


!![[乐言科技]]

乐言科技是一家人工智能技术提供商,是以做信息传输、计算机服务和软件业为主的公司。团队有前IBM Watson、Android Wear中文语音助手、微软小娜核心成员做AI,有前A站CTO、OpenStack教科书的译者搭系统,有腾讯三款知名产品的PM主

!![[极天信息]]

极天信息是一家人工智能服务提供商,基于自然语言处理、语音识别、语义理解等技术研发了语义理解平台、智能问答机器人、大数据搜索引擎及大数据文本分析,致力于改善并提升商业运转效率及质量。技术涵盖语义分析的全

!![[宇音天下]]

宇音天下是一家硬件开发商,致力于智能语音信号处理技术研发并在智能人机交互领域实现产业化的企业,业务包括智能语音硬件平台、智能语音合成软件、智能语音识别软件和增值应用等


!![[车包包汽修]]

车包包汽修是一家汽修助理工具服务商,专注于汽车维修场景下的人工智能云助理。面向社会汽修厂,为汽修技师提供故障辅助诊断、技术案例语音书写、资料快速查询等功能,隶属于深圳车包包智能科技有限公司

!![[索答信息科技]]

索答信息科技是一家专注于自然语言处理技术迭代和人工智能产品研发的企业。索答深度语义开放平台具有中文语境下准确、全面的语音问答,也是具有图像识别能力的在线可定制机器人系统

!![[声希科技]]

声希科技是一家专注于语音识别、语音纠错、语音转换、声纹识别、深度学习、人工智能、大数据分析、智能硬件、机器人等技术的科技公司。公司致力于提供高质量的语音技术服务

!![[SmartAssist.io]]

SmartAssist.io是一个人工智能客服平台,通过机器学习技术将企业客户的需求自动匹配给相应的客服人员。某些情况下,SmartAssist.io可以根据企业的设置来自动回复一些问题


!![[百炼智能]]

百炼智能是一家AI自动化知识内容创作服务商,公司将自然语言处理、信息检索、深度学习、自然语言生成等技术融合在一起,同时结合产品的设计和用户的反馈,经过算法和产品的反复演进和迭代,帮助用户能够高效地获取所



!![[百芝龙智慧科技]]

上海百芝龙网络科技有限公司,专注于基于人工智能与语音交互的全宅智能生活系统解决方案的探索、研发与创新。在全宅解决方案、深度学习策略、响应策略、麦克风阵列及降噪算法等方面,拥有多项专利与核心技术。

!![[贝芽智能]]

贝芽智能科技(苏州)有限公司是一家专注于人工智能与机器人技术在教育领域创新应用的高科技企业,通过人工智能+机器人技术+教学标准化 + 大数据云 ,为教育机构提供0-12岁儿童智能教学解决方案的教育机器人公司



!![[凌声芯语音]]

凌声芯语音是一家从事语音处理技术研发的科技公司,主要从事在线智能英语学习平台的研发、应用和服务,旨在为全国中小学生提供新一代教育信息化产品和教学模式

!![[希尔贝壳]]

希尔贝壳是一家人工智能数据服务提供商,为客户提供垂直精准的数据定制服务,拥有语音识别、语音合成、声纹识别和音频检索技术,数据产品目前以语音数据为主,主要涵盖智能家居、智能车载、智能机器人、基础数据以及

!![[LSK深度人工智能]]

LSK深度人工智能是一家人工智能语音语义内核分析技术公司


!![[黑鲸科技]]

黑鲸科技是一家专注人工智能语言算法研究的、服务集成、产品设计、生产销售的创新型科技企业。旗下产品M.AI智能语音操作系统,以远场语音交互为核心,解决了人与机器交互形式,直达互联网内容和服务



!![[云知声]]

云知声是一家专注物联网人工智能服务,拥有世界顶尖智能语音技术的高新技术企业。云知声利用机器学习平台,在语音技术、语言技术、知识计算、大数据分析等领域构建了完整的人工智能技术图谱



!![[深智科技]]

深智科技是一家自然语言处理技术研发商,主要研发人机交互、机器翻译、情感分析在内的人工智能技术服务和软件产品,包括健康养生自动问答、离线机器翻译系统等,同时为企业提供人工智能技术产业升级和技术咨询服务


!![[语知科技]]

语知科技是一家自然语言理解AI技术提供商,为企业做知识图谱建设、舆情分析、机器翻译甚至是智能硬件等应用提供底层的NLP技术支持,一方面能提供NLP底层技术接口的服务,另一方面也可以为特殊客户提供定制化、私有云部



!![[Fatea科技]]

Fatea科技,是一家使用基于人工智能的技术为企业提供图片识别服务的公司,以技术改变生活作为公司的愿景


!![[牛直聘]]

牛直聘是一款人工智能自动学习招聘平台,能够聪明分析企业招聘需求,自动筛选推荐最优质的简历,需求越详细,推荐越精准,北京人人乐科技有限公司旗下产品



!![[中科鼎富科技]]

中科鼎富科技是一家专业从事于非结构化大数据服务、自然语言处理的高科技公司,产品有DINFO-OEC非结构化大数据分析挖掘平台等


!![[爱扒词]]

爱扒词是一个速记扒词服务平台,通过互联网+语音识别+人工校对等新技术、新模式,将语音转成高准确率的文字,隶属于北京追声匠信息技术有限公司


!![[捷通华声]]

北京捷通华声是一家专注于语音、手写识别等智能人机交互(HCI)领域的技术公司,产品包括中文语音合成、灵云语音开放平台等

!![[先声教育]]

先声教育是一家K12领域智能听说测评服务商,专注英语教育领域,提供在线口语、听力、评测系统及技术解决方案,隶属于北京先声教育科技有限公司



!![[ImageQ]]

ImageQ是一个大数据语义分析云平台,致力于通过技术创新和商业探索,将大数据产品和服务引入细分行业,运用人工智能辅助政府科学施政,并结合全网数据和工商数据帮企业分析竞品及市场的动态

!![[易手邦]]

易手邦是一家中文自然语言智能文本云服务商,整合短信、微博应用、手机客户端、网站等多平台,提供基于语义的智能文本服务

!![[InData数心科技]]

一家数据智能技术服务公司,专注大数据和人工智能技术并将其应用于商业领域。 公司在人工智能、语音识别、行业知识图谱处于行业领先水平,并持有多项技术专利和著作权。 其自主研发的产品包括百应智能语音机器人

!![[嘿哈科技]]

嘿哈科技是一家将体感技术、语音识别技术等运用在幼儿教育领域的教育软件开发公司。2013年1月入驻微软创投的云加速器孵化基地

!![[亿幕]]

亿幕是一家视频字幕生产与翻译协作共享平台,基于亿幕提供的技术、工具以及交流平台,让所有人都可以随时随地分享自己第二语言的能力,把知识传播给更广阔的人群。深圳亿幕信息科技有限公司旗下产品


!![[优问软件]]

优问软件(前身是上海智问软件技术有限公司)是一家智能化的语音应用开发商,主力产品。优问,是一款具备语义技术、应用可广泛任意接入的超级App,旗下还有语义网、优问工场等


!![[鸣啸教育]]

致力于促进“教育公平”,用人工智能技术私人订制中学生的升学规划,以实现“因材施教”。同时,建立国内首家“自主招生数据库系统”,为顶尖大学的招生老师提供数据支持




!![[玻森数据BosonNLP]]

玻森数据BosonNLP是一家中文自然语言分析云服务提供商,旗下有中文语义开放平台 BosonNLP、企业征信服务网站“风报”等




!![[准星云学]]

准星云学是一家教育领域产品化的高科技企业,自主研发的人工智能评测系统,其实质是智能教育机器人,它集成人工智能、图像识别、物联网、自然语言识别、机器学习、大数据处理以及公有云等多项前沿技术


!![[Fano Labs有光科技]]

中文方言处理和分析的语音识别及自然语言处理技术,其人工智能系统可以分析广东话、四川话、英语和普通话,继而帮助企业呼叫中心通过分析来电进行更好的服务质量管控


!![[蛙声科技]]

蛙声科技是一家智能语音交互系统研发商,旗下技术涵盖语音信号处理,激活词,语音识别,语义理解以及大部分语音生产技术。致力于为用户提供智能语音交互系统整体解决方案,满足日常生活的需求



!![[Elsa]]

ELSA是一款“英语发音助理”应用,语言学习者可以在iOS或Android上下载ELSA,然后参加ELSA的五分钟评估测试。该测试可以识别用户的发音熟练成熟并确定他们存在的问题。


!![[谛听机器人]]

谛听机器人是一个中文语义分析与理解服务提供商,通过研究自然语言理解技术NLU和深度语义理解技术DSA,来帮助企业和终端用户解决人机交互自然流畅的问题。它还可以接入微信公众号或网站,并通过平台所提供的机器人API开


!![[qury]]

Qury是一家基于人工智能和机器学习的搜索引擎公司,致力于打造基于移动端的跨应用程序内容搜索平台,用户可以更高效精准的搜索到应用程序目标内容


!![[ICONTEK艾肯特]]

ICONTEK艾肯特是一家自然语言处理引擎开发商,专注于研发基于NI算法的NLP(自然语言处理)算法引擎,NI-NLP引擎支持所有语言以及任意混合的多语言,可以开发出智能客服、语音搜索、语音导航、呼叫中心以及语音支付等应用


!![[半人科技]]

半人科技是一家专注于在线机器学习领域的人工智能基础服务提供商,基于大数据平台的搜索,挖掘,推荐和自然语言理解技术运用在招聘辅助服务领域,以人工智能机器后台方式实现猎头服务



!![[金童软件]]

金童软件是一家以“自然语言理解”为核心技术、为企业提供客服机器人服务的公司,为企业提供7*24小时在线客服机器人等产品




!![[哈工科教]]

应用于互联网智能场景等全方位时间体系,满足了各个学龄段针对人工智能教育的教与学的实际需求

!![[Recurrent.ai]]

Recurrent.ai是一家基于人工智能的智能聊天机器人科技公司,致力为各个领域的企业和开发者提供专属的聊天机器人。北京睿科伦智能科技有限公司旗下产品


!![[谋篇]]

谋篇是一家电子商务聊天机器人开发商,用户可以通过Messenger机器人聊天的形式,找到想要的商品,并直接在Messenger中购买。并提供新闻订阅,可以时时保持和客戶的沟通,分享关于您的服务,产品,设定FAQ,并透过Messenger直接沟通


!![[I.am+]]

I.am+是一家专注于专注于消费电子设备,并提供基于人工智能的客户服务聊天机器人研发商,致力于为企业客户提供语音助理服务


!![[八宝智能]]

八宝智能是一个聊天机器人服务提供商,为企业提供应用场景Chatbot服务,以集合高效为服务特点,形成以结果为导向的7*24模式服务,致力于研发人工智能Chatbot来协助甚至替代服务岗位




!![[Rulai]]

Rulai是一家美国智能客服研发商,以SaaS平台的形式,为众多领域的企业提供智能虚拟助手服务,主要提供个性化的文本自助服务选项、实时聊天和电子邮件交互、授权用户完成更多的自助服务,针对购买路径提供自动化、指导性的解决方案


!![[千呼机器人]]

千呼机器人是一家聊天机器人研发商,自主研发了千呼人工智能电话机器人,通过一问一答真人声音和用户交流,智能筛选意向用户分类,可实现人机对话中即时转后台人工功能,广泛应用于金融贷款、教育培训、出国留学等



!![[渡鸦科技RavenTech]]

渡鸦科技是一家成立于 2014 年 5 月的科技创业公司,微软加速器第五期校友,Y Combinator W15 唯一的中国大陆创业团队。目前团队在中国北京和美国硅谷都有办公室。旗下产品有人机交互与人人交互系统—— Project Flow

后被百度收购

!![[灵声机器人]]

杭州声讯网络科技有限公司是一家专注于人工智能领域研发的公司,灵身机器人是其在企业电销领域打造的电话机器人,产品适用于企业业务和服务推广的语音营销服务平台


!![[Wysdom]]

Wysdom是一个人工智能问答客服平台,可以帮助企业回答客户问题,用户只需将知识库数据导入进 Wysdom 机器人,然后就可以训练它完成一些问答回复。这款聊天机器人可以分析自然语言来理解客户问题,然后给出正确答案,目前


!![[杉科]]

杉科是一家专注于人工智能、自动控制、数字化智能服务装备、图象处理与智能视频分析及嵌入式操作系统等领域综合应用的公司。公司自主研发并拥有自己独立知识产权的智慧城市及商用机器人解决方案。合作伙伴包括微软

!![[鸟瞰智能]]

鸟瞰智能是一家商业场景对话机器人研发商,定位于城市消费个性化推送的ROI移动营销DSP平台,依托每日超10亿流量,日覆盖超5亿独立用户,以280个行为标签分析锁定目标用户,专注于为移动互联网、城市消费、金融、手游等行

!![[巴巴腾智能儿童机器人]]

鑫益嘉是一家儿童智能机器人研发商,公司致力于互联网+产品、智能机器人、智能穿戴和智能教育领域的创新与研发。结合前沿的互联网+概念、云服务技术及十多年软硬件开发实力,为用户呈现智能服务生活的极致体验


!![[猎户星空]]

猎户星空是一家专注于智能机器人产品和智能语音服务解决方案的互联网公司,产品有猎豹机器人等,是猎豹移动旗下人工智能控股公司

!![[知麻机器人]]

知麻机器人是一个提供语义理解、智能问答、个性化推荐等服务的聊天机器人开发平台,致力于为硬件机器人、客服机器人、智能硬件开发者提供语义理解开发平台,让开发者通过集成语义理解SDK,可轻松接入人机对话功能

!![[EFORT埃夫特智能]]

EFORT埃夫特是一家工业机器人设计、研发、制造与系统应用开发公司,埃夫特在自动化装备设计实施方面有多年的行业积累,尤其在汽车焊装工艺设备、自动化输送设备、涂装工艺设备、机器人集成应用等领域为合作伙伴或终端

!![[众标实验室]]

众标是一家大数据应用服务提供商,通过自然语言处理技术将海量的市场信息转化为可供分析的情报信息,同时利用知识图谱技术深化产业分析,基于积累的大量企业画像数据,结合企业基本信息、企业关联数据、企业事件库等

!![[ROSS Intelligence]]	

美国	认知计算、深度学习、自然语言处理	法务研究智能辅助工具		


!![[今日头条]]	

中国	深度学习、自然语言处理、图像识别	媒体产品的应用	估值约 120 亿美元


!![[清辞科技]]

清辞科技(北京)有限公司由清华在校学生创办,运用人工智能前沿技术致力于在中文自然语言处理中做出一定的贡献改善人们的工作生活。清词是清辞的第一个产品,它结合目前最前沿的计算机自然语言处理领域的相关技术模

!![[Hugging Face]]

Hugging Face是一个聊天机器人开发商,注重产品带来的情感等因素,通过人工智能技术,可以与用户进行交流,除了支持文本信息之外,同样也能处理照片、表情包等


!![[人智科技]]
人智科技是一家人工智能机器人研发商,Roby Mini小机器人是其开发的产品,具有智能安防、智能家居、语音识别等功能

!![[问众智能]]
问众智能是一家车载人工智能技术研发及应用商,旗下新款产品是问问魔镜Ticmirror,除了防爆裂镜片、V0级抗阻燃塑胶等安全硬件设计元素。这款智能后视镜还具备出门问问的AI语音解决方案,驾驶员可以直接通过语音交互


!![[器魂智能]]

器魂智能Machine Mindasas是一家开放式人工智能会话式交互系统与云服务平台,隶属于上海智臻智能网络科技股份有限公司


!![[Sonos]]

Sonos是一家美国家庭智能音箱研发商,专注于家庭无线高保真音乐系统的研发与设计,基于该系统,用户可以通过无线方式在任意房间在线播放所有音乐,并可使用智能手机、平板电脑或个人电脑进行控制

!![[拜爱智能科技]]

拜爱智能科技是一家智能家居行业科技公司,拜爱智能的主营业务是智能家居系统集成,智能家居定制安装,智能家居系统软件开发,智能家居产品销售。主要产品有人工智能服务机器人、用apple watch控制的智能家居等



!![[大白]]

大白是一个私人智能助理平台,基于人工智能和O2O为用户提供全方位的私人助理服务,用户只需要发送需求,平台可为用户提供服务,比如买卖、租车、订票、预定等。杭州晓宇科技有限公司旗下产品


!![[小达助理]]

小达助理是一个智能私人助理服务工具,根据用户需求推荐针对性的服务,上海尖果网络科技有限公司旗下产品


!![[助理来也]]

助理来也是一家领先的人工智能交互平台,通过基于深度神经网络的自然语言处理技术,打造知识型行业助理产品,赋能专业人士。提供更高效商业洞察及智能交互解决方案,创造核心价值,实现商业闭环。


!![[智能盒子]]

智能盒子,一家专业的提供教育机器人产品和物联网解决方案的高科技公司。致力于开源硬件的推广和应用;业务拓展涵盖“物联感知、智能家居、智能控制平台、教育机器人、创意电子产品”五大核心领域


!![[旺果]]

旺果是一款智能家庭机器人。隶属于上海禹昌信息科技有限公司

http://www.onegohome.com/

!![[天博智TBZ]]

天博智(TBZ)是一家专注机器人与人工智能的科技公司,主打产品有Bogo儿童探索机器人系列产品等

!![[爱链优]]

爱链优声控小机器人是一个家庭沟通机器人,以满足私人情感体验,促进 挚爱与家人的情感链接,隶属于北京爱链科技传媒有限公司

!![[物本脑科技]]

物本脑科技是一家陪伴机器人研发商,依托自主研发的机器人云大脑平台,致力于提供机器人相关软硬件产品的研发与定制服务。旗下产品以机器人伴侣为主,包括机器人老板娘、美女主播等


!![[智能万事屋]]

智能万事屋是一款基于人工智能的个人生活助理App,向客服机器人说出自己的需求,从而抓取用户的需求,再匹配服务,也可以发布自己的技能或服务,帮助他人。隶属于上海数朋网络科技有限公司

!![[Rokid]]

结合人工智能和深度学习,革新性的人机交互和精美的工艺,期望把前所未有的科技体验带入家庭



!![[Julie Desk]]

Julie Desk是一家开发人工智能虚拟助手的企业,该助手能自动帮你安排会议、预约等事务

!![[GreenMind机器人]]

青未了科技是一家从事人工智能研究和stem教育产品研发,生产和销售的高科技机器人企业,致力于stem教育机构和从业者提供从教学教具,教学内容,比赛,国际交流在内的端到端教育方案


!![[OpenAI]]

OpenAI是一家非营利性人工智能研究公司,致力于研究人工智能和其他机器学习技术,目前准备打造家用机器人


!![[路加机器人]]

路加机器人是一家消费级机器人科技公司

!![[RoboMing明机器人]]

明机器人RoboMing是一个基于iPad的智能机器人配件产品,用户可以通过APP或者Web浏览器远程视频访问并遥控它,让它突破距离限制,“身临其境”去参观和“面对面”交流。上海慧流云计算科技有限公司旗下产品


!![[飞马机器人]]

飞马机器人是一家致力于民用超小型无人机的科技公司,为客户提供便捷易用的工业级无人机、消费类无人机产品,产品有J.ME捷魅飞拍神器等




!![[玩伴机器人]]

玩伴机器人是一家专注于儿童的智能机器人企业,立足AI、VR、AR、biosensor的应用开发、集成服务,为儿童产业提供智能升级服务,让每个孩子都拥有一个自己的机器人,提供机器人管家、玩宠机器人、医生机器人、老师机器人等

!![[小漫科技]]
小漫科技是一家智能语音交互助手研发商,公司致力于家庭场景的语音交互系统及硬件的研发、制造与销售业务,产品拥有意图识别、生活信息解答、讲新闻、讲故事、聊天等功能

!![[Ohh智能家居]]
Ohh智能家居是一款依托微信平台,通过自然语音控制家居系统的产品

!![[MeetFrank]]

MeetFrank是一个AI招聘平台,使用机器学习和聊天机器人来缓解被动求职和人才空缺匹配的压力,被动求职者主动下载应用并输入一些数据后,通过与机器人交流,获得与潜在职位的匹配,同时雇主可在平台上发布招聘广告


!![[Woebot]]

Woebot是一家心理治愈系实时聊天机器人研发商,帮助用户利用认知行为疗法来解决自己的心理健康问题。用户在聊天中的对话会进行保密设置,但如果用户情况严重的话,可以联系到某些人紧急求助



!![[岚正科技]]
岚正科技是一家语音智能解决方案供应商,专注于智能语音领域,以智能语音完整生态链、智能语音技术为基础,集智能语音硬件产品、智能家居产品的开发、软件研发、生产、销售为一体


!![[来电机器人]]
来电机器人———最广泛的外呼语音AI助手

!![[Slang Labs]]
Slang Labs是一个多语种语音助理平台,主要开发移动软件开发工具包(SDK),允许新的移动应用程序或者老的APP,都能在其中添加智能多语言语音助理功能


!![[多福莱]]

多福莱是一家聚焦于人工智能和机器人技术在教育行业的应用的公司。以人工智能为核心,将云AI于教育相结合,致力于为宝宝提供家教机器人

!![[Evature]]

Evature是一家自然语言和聊天机器人技术提供商,旗下产品Eva,具有与用户自然语言互动、主动学习等功能。通过建立和训练来自真实数据模型,从而进行质量预测和决策

!![[出门问问]]

一家拥有自主语音识别、语义分析、垂直搜索技术的人工智能公司,也是Google的战略合作伙伴并得到了Google的投资。目前主要产品有智能手表操作系统Ticwear;智能手表Ticwacth;可穿戴移动支付Ticpay;车载后视镜Ticmirror和高级


!![[叮咚音响]]

灵隆科技是一家致力于智能家居硬件产品、语音解决方案及智能硬件平台服务的研发和推广的公司,专注于打造可连接智能应用链的热点产品,让语音智能生活体验进入千家万户

!![[小鱼在家]]

小鱼在家是一个视频通话机器人制造商,采用摄像头、屏幕、音箱相结合的解决方案,支持手机远程完全遥控操作,APP与分身鱼同屏共享所有的内容,为家庭提供语音求救、智能视频录制和语音助手。同时还是一个家庭助手


!![[喵喵早教机]]

喵喵聊天是一款人工智能早教机,“喵喵人工智能早教机”基于人工智能技术,可以给孩子跟真人一样的聊天体验,还会根据对话内容表现情绪,隶属于深圳市仁杰智能科技有限公司


!![[寒武纪智能]]

寒武纪智能是一家专注于智能机器人研发的公司,集产品研发、生产、销售于一体。产品可实现家庭远程超控、在线教育、影像共享、自然语言交互等综合功能


!![[小丘机器人]]

小丘机器人是一个主打AI(人工智能)的心理关怀师“机器人”,运用专业的知识和温暖的话语,陪你聊心事,给你快速的情绪帮助,北京陶阳之星科技有限公司旗下产品,此外还开发了暖丘、考拉山等



!![[Nanorep]]

Nanorep是一家聊天机器人研发商,专注于开发聊天机器人和其他基于AI的工具,用来帮助人们浏览自助服务应用

!![[糖医机器人]]

糖医机器人是一款糖尿病领域的人工智能机器人助手,用户可以通过自然语言语音、文字、图片的方式,和机器人进行交流,询问关于糖尿病的任何问题。隶属于英春医疗科技(上海)有限公司

!![[车音智能]]

车音网是一家车载语音识别技术开发商,致力于通过语音识别技术,提供以商用级中文语音识别为基础的人机交互平台及Telematics服务企业解决方案,为驾驶者打造安全便携的语控通讯、语控导航、资讯娱乐、车务管理等智能辅


!![[公子小白]]

一家陪伴型机器人研发商,致力于中文自然语言交互、人工智能、机器人硬件等领域探索和创新,其产品通过一套完整的仿生表情系统,智能识别语言并做出对应的表情,可以180度转动头部,与人聊天


!![[董秘]]

董秘是一个通过人工智能以及人工客服为用户提供智能私人秘书的服务的APP。用户以语音和文字消息提出需求,“董秘”按需提供私人助理服务,如订各种票、订酒店、预订餐厅、生活服务、购物、外卖、快递、事务查询。


!![[小忆机器人]]

深圳市金刚蚁机器人公司是一家致力于研发、生产与销售家庭智能机器人的互联网公司,主打产品为小忆机器人,这是一款面向3~8岁年龄段儿童的智能机器人


!![[时空壶]]
时空壶是一家致力于将人工智能与智能硬件结合,提升用户体验的科技公司,正携手其他公司共同设计和制造基于语音技术的智能硬件,让这些技术为普通大众所用,隶属于深圳时空壶技术有限公司


!![[emeet]]
壹秘emeet是一家移动办公产品服务商,公司基于智能语音算法(VoiceIATM)及视频图像识别技术,专注于为中小型企业和自由职业者提供高质量的可移动会议电话,隶属于深圳壹秘科技有限公司

!![[Rasa]]
Rasa是一家德国机器学习技术研发商,自主研发了开源机器学习工具包,可为用户定制聊天机器人和语音助手,通过深度学习处理上下文对话,能够处理与深层后端集成的复杂对话并实现端到端自动化,广泛应用于银行、保险等领域

!![[诸葛小青]]
诸葛小青是专注于中文AI语音助手的研发商,采用语音识别、语义分析技术,配以自有的硬件体系,在接入各类智能家居设备后通过云服务提供语音控制、习惯储存、智能推荐等功能;北京语智科技有限公司旗下

!![[快说语音助手]]
快说致力于为手机和车机用户提供智能语音交互产品及解决方案,提供了语音助手、语音导航等应用。快说(上海)网络技术有限公司开发

!![[LinkerWD领地科技]]
LinkerWD领地科技是一家专注于价值社交和语音智能连接的移动互联网科技公司,致力于为用户提供语音识别、语音合成、机器翻译、人机交互等服务。隶属于北京领媒科技有限公司


!![[简单搜索]]

简单搜索是一款拥有强大语音搜索能力的极简极速搜索APP,具备语音搜索、图像识别等多种新一代搜索功能,让用户可以便捷地搜索到自己所需内容。百度旗下产品


!![[飞碟智控]]

飞碟智控是一家智能家居解决方案提供商,旗下产品包括环境探测器、智能电子锁、触摸开关等。全宅利用智能语音交互技术,具有灯光控制、室温调节、远程空调等家电管理功能



!![[Viv Labs]]

Viv Labs 是一个人工智能语音助手,它能够理解复杂句子,在用户对它的使用中自主学习,并且帮助完成事情


!![[风吟旅行]]

风吟旅行是一个中文人工智能导游,集合在线语音导游,旅途信息和旅行实用工具如语言翻译一体,为用户提供基于LBS的导游讲解服务以及基于AI技术的智能问答服务,北京侣程科技有限公司旗下产品

!![[Niki.ai]]

Niki.ai是印度一家人工智能个人助手服务商,企业为用户提供了一个便捷的对话界面,帮助他们购买商品和服务,致力于强化机器学习技术,构建语音和多语言功能,并扩大其分销网络

!![[翻译狗]]

翻译狗是一家人工智能翻译服务提供商,自主研发了深度学习和神经网络机器人“神经网络智能翻译系统NITS”,致力于通过大数据、人工智能、移动互联等技术,为各领域用户提供人工智能翻译服务

!![[车萝卜CarRobot]]

车萝卜CarRobot是一个智能车载机器人系统,主打HUD车载机器人,能够直接用语音+手势,调用导航、微信短信的收发、拨打电话等,北京乐驾科技有限公司旗下产品

!![[E听说]]

E听说是一个致力于K12在线教育领域的智能语音与人工智能上市公司,是一款权威、专业的英语听说考试训练及备考系统,打造了完善的英语教学与备考产品体系,覆盖校园模考、个人模考、教辅书籍、考试专用耳机和考试测评

!![[灵声科技]]

上海灵声信息科技有限公司是一家专注于智能语音技术、自然语言处理技术相关的研究、应用及开发的互联网创业公司,产品有百灵语音助手、听听中心等


!![[语兜机器人]]

语兜是一家儿童陪伴机器人研发商,其产品主要提供语音聊天、启蒙教育、成长记录等功能。家长可以通过语兜APP来远程遥控家中的语兜机器人给孩子播放故事和儿歌。此外,语兜APP每天也会推荐育儿经与趣味语音



!![[萝卜科技]]

萝卜科技是一个儿童语音互动机器人制造商,以3-8岁儿童为目标对象,提供语音交互功能,如陪伴小孩自由对话,提供天气等信息,陪唱儿歌跳舞等功能,用户还可通过App,实现舞蹈编程、路径编程等功能


!![[小i机器人]]

小i机器人是一家智能机器人技术提供和平台运营商,提供文本、语音等人机交互服务,上海智臻网络科技有限公司旗下


!![[咪鼠科技]]

咪鼠科技是一家智能语音鼠标提供商,专注智能人机交互领域,努力为人们提供世界领先的人机交互产品和解决方案


!![[小智超级音箱]]

小智超级音箱是一个主打语音控制的智能音箱产品,主打语音操控、人工智能、个性化播放等,隶属于聚熵信息技术(上海)有限公司


!![[游迹语音助手]]

游迹语音助手是一个基于语音的移动本地生活服务提供商,北京游迹天下信息科技有限责任公司旗下


!![[小笨智能]]

小笨智能(北京慧闻科技发展有限公司)是一家互联网人工智能技术服务提供商之一,目前公司的产品有智能客服、智能服务机器人、智能车载语音助手、问答引擎开放平台,精益求精打磨每一款产品,带领人工智能走进更多领域


!![[木牛机器人]]

木牛机器人是一家教育机器人提供商,致力于为孩子们打造一个以多智能体互动技术为基础的情境化教育机器人平台。利用语音图像处理和自然语言处理技术,提供给教育机构作为教学辅助,使得对儿童的教学具有趣味性

!![[虫洞语音助手]]

虫洞语音助手是一款生活类语音工具,通过语音指令、提供各类生活服务,如订票、周边美食等,北京光年无限科技有限公司旗下

!![[01音乐]]

01音乐是一款用AI学音乐的App,将整个乐章按照乐句划分,学生根据App教导,一句一句地练习。登录App,学生可以选择作业与录制曲目,观察全球排行等;老师则是登录微信公众号,进行收发作业、检查作业与分享


!![[准儿翻译]]

分音塔科技是一家硬件公司,采用世界领先的人工智能技术,率先开发出中国首款人工智能口语翻译产品——准儿翻译机(+准儿翻译App),实现中英日韩泰语等多语种实时对译,满足了亿万人的跨语言沟通需求



!![[SmartCAT]]

SmartCAT是一个自动化翻译平台,平台为用户提供翻译记忆、词汇、智能问答检查以及人工智能算法等服务,同时得到了数千名语言专家的支持,用户可以直接与人工翻译专员联系,获取服务


!![[Articoolo]]

Articoolo是一家文章生成系统研发商,使用人工智能和NLP来创造出原创文章。用户只需要用2到5个单词描述主题,并选择所需要的文章长度,演算法就会生成用户所要求的文章



!智能客服


!![[快商通]]

快商通专注人工智能客服领域,为企业提供挖掘潜在客户、销售、服务和市场营销的智能化整体解决方案。智能营销客服直接替代或辅助人工回答问题,并在工作中用深度学习技术自主学习优秀营销客服话术,帮助普通销售客服


!![[墨子AI]]

墨子HR智能助理是一款以自然语言处理和深度学习技术为基础的HR机器人,赋能企业人力资源服务,墨子随时解答准雇员在面试入职中的疑问、通知面试结果,将企业面试管理、入职管理流程自动化。

!![[创世乐享]]

创世乐享是一家智能客服公司,该公司致力于为企业提供新一代企业级智能客服系统,智能客服系统行业目前在客户市场和资本市场都已经爆发,期待优秀的人才加入cs30,我们一起打造中国最优秀的智能客服系统

!![[Frontdesk AI]]

Frontdesk AI是一家人工智能自动化客户服务软件公司


!![[懂你科技]]

懂你科技是一家在人工智能领域擅长语意理解及分析,机器学习,以及其相关算法和产品化开发的公司。致力于人机交互,通过不断更新现今算法和人性化的系统,使企业更方便的使用逼真个性化机器人客服及其它人工智能产品




!![[智齿客服]]

智齿科技是一家专注于自然语言处理领域的初创公司,主要将自然语言处理、人工智能技术应用在企业客服领域,已经服务于数万家的客户(包括乐视网、Roseonly、爱施德、海尔、惠买网、富士康、宜信、泰康人寿等)

!![[美洽]]

美洽是一款精致、实用的在线客服软件,为企业快速搭建和用户实时沟通的桥梁。通过多平台接入、在线沟通、访客列表,历史对话、数据报表等模块,多方位的支持企业完成客服工作,帮助企业提高客户服务质量和营销转化率


!![[科讯嘉联]]

科讯嘉联是一家saas模式的智能云客服产平台,公司致力于通过客服机器人及人工客服双重模式高效解决企业客服业务,降低企业客服管理成本,目前公司围绕“人工+智能”实施客户服务中心升级,全渠道客户联络软件研发,提



!![[云问机器人]]

南京云问网络技术有限公司(简称云问科技)是一家互联网人工智能技术服务提供商,目前主打产品云问机器人,为用户提供智能客服服务


!![[奇智网络]]

奇智是一个SaaS模式全渠道全媒体智能客服云平台,用户可以轻松完成知识库定制,实现智能客服与自身业务的迅速对接

!![[小晓机器人]]

重庆邂智科技有限公司专注于智能客服领域,属于技术创新型互联网企业。旗下产品小晓机器人,每年在电商、教育、旅游、医疗和金融等领域接待消费者超过100万人次




!语义


!![[天机智讯]]

智搜是一家人工智能搜索引擎研发商。基于数据源采集、大数据挖掘、语义分析等领域的研发,提供以聚合API、篇章类API、人工智能类API及句法类API等技术为核心的资讯领域搜索服务,旗下产品有天机智讯、智讯企业版及GIISO开



!![[智言科技]]

智言科技赋能于B端企业,为B端企业提供平民化的智能语义分析引擎,通过基于知识图谱的深度语义理解模型,让用户以搭乐高积木的方式搭建个性化的智能语义理解引擎,让企业快速拥有智能对话系统和智能决策引擎。通过低




!![[知言科技]]

广州知言信息科技有限公司成立于2013年,公司专注于人工智能领域的语义解析(人机交互)、 按需计算(模拟思考)、知识自动化(大数据计算)等技术研发,通过云端智能计算架构,将用户、 开发者、互联网资源三者间以高


!![[猎萝卜]]

猎萝卜是一家智能猎头招聘平台,利用人工智能招聘系统,实现多维度解析企业的职位需求,为HR匹配、推荐最合适的猎头顾问;通过对候选人简历的语义识别,进行精准的人岗匹配,隶属于人立方智能科技有限公司


!![[三角兽]]

三角兽是一个致力于打造一套中文智能交互系统,一个基于NLP技术、语义理解和自主学习等核心技术的系统级平台,旨在使广大B端公司快速低成本地获得智能交互的能力,使B端公司的用户获得更加智能的交互体验


!![[奇智机器人]]

奇智机器人是一家SaaS模式语义云服务提供商,采用的前沿技术NLP算法,致力于打造出色的中文对话机器人云平台,提供对话机器人免费云接口和智能客服定制等服务。隶属于上海八斗智能技术有限公司


!![[语义云]]

语义云是一个语义解析、识别的开放平台,聚熵信息技术(上海)有限公司开发


!![[YI Tunnel图灵通诺]]

YI Tunnel图灵通诺是一家无人便利店方案提供商,主打AI+新零售,通过图像识别、人脸识别、动作语义识别等技术,采集SKU数据、消费者行为和交易数据,并进行实时销售数据监测,最终以指导供应链优化


!![[滴孚人工智能]]

滴孚人工智能是一家计算机视觉识别系统研发商,具备语义理解、情感分析、信度感知、行为解读、认知范式转译等核心技术,集成计算机视觉、机器学习及其它数据挖掘技术,构建认知模型

!![[杭州云歌信息]]

杭州云歌信息是一家基于智能语音的技术公司,将中文自然语言智能语义识别、人机互动对话等技术,运用到精准搜索和移动信息服务领域。

!![[机智马]]

机智马是一个提供人工智能服务的公司,公司主要提供图片识别、人脸识别、视频识别、语义分析和机器人等服务

!![[芯球科技]]

芯球科技是一家专注人工智能核心算法研究和产品开发实现的公司。已实现案例包括汽车品牌舆情分析、血压数据建模、车型车牌识别、试题拍照识别搜索、客服系统说话人识别、视觉+惯性导航模块等


!![[上海律团]]

上海律团网络是一家智能法律顾问,产品为“小律”、以智能客服为切入点,基于AI技术和区块链技术提供法律服务解决方案的科技公司。目前主要面向法律相关领域的B端客户提供SaaS服务,其核心用户包括法律回帖性咨询网站

!![[庖丁科技]]

庖丁科技是全球领先的专注于金融语义理解的人工智能公司,致力于将国际最前沿的深度学习(Deep Learning)、自然语言处理(Natural Language Processing)、富格式数据(Richly Formatted Data)解析等技术与金融各垂直领域专业知识进行深度融合



!![[酷曼科技maan.ai]]

酷曼科技是一家专注人工智能产品体验的科技公司,通过投入前沿AI技术及平台研发,重视产品用户交互打造细节体验,推出了maan.ai语义服务。将其广泛应用于互联网软件、以及各类AI硬件产品。


!![[华云智能]]

华云智能是一家智能信息处理系统开发商,以人工智能、大数据认知计算技术为核心,专注于图像、视频、语音、文本信息大数据处理以及语义理解等核心技术,致力于赋予垂直行业专业化的人工智能核心技术支持,提升行业效



!![[妙计旅行]]

妙计旅行是一个基于人工智能技术的旅游路线个性化定制引擎,利用大数据和智能化技术为用户提供一键生成的出境游路线计划。通过收集全球数十种语言的数亿旅行行业网页,通过语义理解技术挖掘出上亿信息节点的旅行结构


!![[西亚财信]]

提供涵盖多个行业的人工智能场景解决方案。目前主要的业务方向有:基于知识图谱的在泛金融领域的风控预警,基于语义搜索的舆情监测


!![[Deepleaper]]

Deepleaper成立于2016年6月,是国内第一家专注于人工智能商业语义处理的科技公司。 公司自主研发的瞬知™人工智能商业语义处理引擎,在人工智能自然语义处理与深度学习领域,拥有商业语义认知、价值判断与策略预测等多项


!![[灵聚科技]]

成立于2013年,专注于人工智能核心技术之一灵聚人工大脑的研发——这是将语义分析、知识图谱和认知计算等技术有机结合在一起的算法和数据集群,主要实现自然语言交互、自学习和认知等


!![[子询人工智能]]

子询人工智能研究院是一家人工智能开发服务平台,专注于基于Matlab的深度神经元网络人工智能平台的搭建,提供人工智能产学研一体化基地和标准化服务。拥有语义理解工具集和AI工具集等产品


!![[网感至察]]

网感至察是一家以TML系统为核心技术的公司,致力于为客户提供潜在顾客发现、报表式口碑分析、细粒度情报分析、数据采集与分析、文本语义分析等,旗下技术包括大规模深层语义搜索、知识图谱和机器学习等


请点击控制台,然后在信息 那一栏下面修改文件名、作者名等信息。

我们不建议修改其他内容

当然了,如果你希望修改也可以,毕竟下载到你的桌面的文件都属于你。

!![[机器之心]]

- 机器之心是一家专注于人工智能、前沿科技的媒体和产业服务平台,每日提供优质产业资讯与深度思考,机器之心(北京)科技有限公司旗下网站。

!![[大数据财经]]

- 大数据财经是一个财经资讯平台,致力于通过大数据及人工智能技术,为投资者提供大盘预测、机器人策略、机器人挖掘等各类投资分析功能。隶属于上海数旦信息技术有限公司。


!![[PaperWeekly]]

PaperWeekly是一家推荐、解读、讨论、报道人工智能前沿论文成果的学术平台



!![[人工智能公会]]

- 人工智能公会是一家人工智能资讯平台,专注于AI创业、AI投资、AI职场资讯,隶属于北京虫子唐朝咨询有限公司。

 
!! [[人工智能公会]]

人工智能公会是一家人工智能资讯平台,专注于AI创业、AI投资、AI职场资讯,隶属于北京虫子唐朝咨询有限公司



!! [[扒一扒AI人工智能]]

扒一扒AI人工智能是一家人工智能资讯平台,专注于报道全球人工智能最前沿新闻资讯,隶属于北京创思凌讯软件有限公司



!![[极酷智能]]

一家个人健康产品服务商,致力于面向客户销售智能手环、智能手表和智能服饰等智能产品,目前代理的品牌包括jawbone、迈欧和博能等。

一个前沿科技新锐媒体,提供最新最热的人工智能领域前沿资讯,以满足用户的相关资讯需求。



!![[人工智能快报]]

- 人工智能快报是一家人工智能领域自媒体,以全球视野动态跟踪人工智能领域的新进展,及时推介人工智能领域的新技术、新应用、新业态,为我国人工智能领域的从业者和政府决策部门快递最鲜活的科技情报和行业资讯。

!![[人工智能信息网]]

- 人工智能信息网是一家人工智能网上门户网站,汇集了人工智能新资讯及学科知识和学习资料,为人工智能爱好者学习和交流提供平台。

!![[人工智能领域]]

- 人工智能领域是一家专注于人工智能领域的媒体资讯平台,隶属于北京神州腾云科技有限公司。

!![[硅谷人工智能SVAIEA]]

- 硅谷人工智能SVAIEA是一家专注人工智能教育领域的垂直媒体,科普人工智能领域的基础知识,教育信息和前沿技术。依托美国硅谷人工智能教育联盟平台(WWW.SVAIEA.ORG)为中美搭建交流平台



!![[新智元]]

新智元是一家主打智能领域的资讯社交平台,重点关注人工智能、机器人、大数据、虚拟现实、量子计算、智能医疗等前沿领域发展,领航中国新智能时代




!![[扒一扒AI人工智能]]

- 扒一扒AI人工智能是一家人工智能资讯平台,专注于报道全球人工智能最前沿新闻资讯,隶属于北京创思凌讯软件有限公司。

 
!![[头号人工智能]]

- 头号人工智能是一家人工智能自媒体,专注人工智能技术前沿新闻资讯。隶属于深圳市龙舞华章科技有限公司。

!![[遇见人工智能]]

- 遇见人工智能是一家专注人工智能的首席全媒体,专注于提供人工智能新闻及资讯,隶属于桂平市特写科技有限公司。

!![[全球人工智能]]

- 全球人工智能关注人工智能和数字货币动态,隶属于深圳市拓扑二十五科技有限公司。

!![[人工智能学家Aitists]]

- 人工智能学家Aitists是一家垂直于人工智能领域的自媒体,为用户提供人工智能、机器人等方面的科技成果及科技资讯,同时通过收集人工智能等领域内的创新项目,为企业及用户提供大数据服务。公司每月28日举办线上投资人见...

!![[人工智能观察]]

- 人工智能观察专注人工智能领域深度报道,致力于成为传递最前沿AI应用的移动新媒体,隶属于天津新秀文化传播有限公司。

!![[智能巅峰]]

- 智能巅峰是一家人工智能资讯媒体,致力于推进军民深度融合发展,聚焦全球人工智能科技创新前沿,关注人工智能产业发展最新动态,为军政企民和社会各界提供人工智能领域的前沿情报、需求信息、战略资讯。隶属于北京蓝...

!![[智能加AIplus]]

- 智能加AIplus是一家人工智能领域最前沿技术与产业资讯新媒体,依托中国人工智能学会、中科院、科技部等优势资源,打造人工智能领域领先的技术资讯与行业政策发布平台,倾力助推传统产业智能化升级,助力中国领先进入“...

!![[人工智能和机器人]]

- 人工智能和机器人是一个新媒体平台,致力于搜集国内外最前沿和最新的人工智能和机器人信息,为大家更好的了解和熟悉人工智能和机器人产业、技术提供全方位的信息服务和资源,隶属于北京星零网络科技有限公司。

!![[AI时间]]

- AI时间是一家大数据人工智能技术前沿媒体,专注大数据人工智能技术前沿、行业观察、实践案例及干货分享,隶属于北京小象科技有限公司。


!![[智能N次方]]

智能N次方是一家前沿技术报道和资源分享平台,专注于大数据、人工智能、机器学习和区块链技术,隶属于北京楚科信息技术有限公司



!![[黑智]]

黑智是一家人工智能领域首家产业服务平台,专注AI行业报道,探讨AI商业价值


!![[AI科技评论]]

- AI科技评论是国内顶尖人工智能媒体和产业服务平台,专注全球 AI 业界、学术和开发三大方向的深度报道。

!![[pandaily]]

- pandaily致力于利用人工智能技术消除信息鸿沟,让世界更加了解中国。目前主要产品是英文媒体网站 pandaily.com向海外特别是美国硅谷和印度东南亚科技社区传递中国科技新闻,未来还会在其它应用场景下开发更多AI产品。

!![[媒体大脑]]

- 媒体大脑是新华智云自主研发的媒体人工智能平台,向媒体机构提供大数据+人工智能的新闻生产、分发和监测能力。

!![[集智俱乐部]]

- 集智俱乐部是一家复杂性科学与人工智能自媒体,主要关注复杂性科学与人工智能的前沿进展、经典书籍与最新文献,同时也发布集智俱乐部、集智AI学园举办的各类讲座、课程等活动相关信息。

!![[量子位]]

- 量子位是一家关注前沿科技资讯,追踪人工智能动态的微信自媒体,隶属于北京极客伙伴科技有限公司。

!![[IT头条]]

- IT头条是一家科技新媒体平台,内容涵盖TMT、人工智能、大数据、区块链等行业热点话题。隶属于北京极智畅享科技有限公司。

!![[智能前线]]

- 智能前线是一家专注人工智能领域的新媒体网站平台,致力于为用户提供人工智能相关的新闻资讯和内容,并形成讨论人工智能的社区。

!![[品途集团]]

- 创办于2012年,品途目前是国内领先的专注于推动产业互联网科技创新的商业媒体集团。旗下拥有“品途传媒”,“品途智库”、“品途资本”三大业务生态

!![[AI报道]]

- AI报道是一家AI热门资讯自媒体,专注于报道AI人最关心的热门资讯和技术趋势,隶属于上海百筹金融信息服务有限公司。

!![[AI财经社]]

- AI财经社是一家商业媒体,专注于人工智能、区块链等前沿技术。隶属于北京博雅天下传媒文化发展有限公司。

!![[AI科技报]]

- AI科技报是一家科技新闻资讯自媒体,专注于人工智能等前沿技术领域的新闻资讯报道,隶属于重庆游渝文化传播有限公司。

!![[[[未来媒体Evomedia]]

- 未来媒体Evomedia聚焦文娱传媒领域,专注人工智能+内容前沿科技探索与实践,面向广电网、电信网、互联网提供内容集成服务、软件开发服务、全栈运营服务、渠道代理服务。目前基于智能场景服务平台推出了大屏新视听应用

!![[[[AI蓝媒汇]]

- AI蓝媒汇是一家知名媒体人社群平台,专注传媒互联网报道。内容包括区块链、人工智能等,隶属于天津向日葵网络科技有限公司。

!![[超神经HyperAI]]

超神经HyperAI是一家关注机器智能产业及相关产业链条的试验媒体,尝试推动中文领域对机器智能的认知与普及,探讨机器智能的对人类族群的影响,并致力于在多个方向服务产业相关从业者。天津诚谷信息技术有限公司


![[人工智能的起源和历史]]

1956年,“人工智能”这个词首次出现在达特茅斯会议上,标志着其作为一个研究领域的正式诞生。

从 2010 年开始,人工智能进入爆发式的发展阶段,其最主要的驱动力是大数据时代的到来,运算能力及机器学习算法得到提高。


![[什么是人工智能]]

2018版中国人工智能标准化白皮书认为,

人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、 方法、技术及应用系统。

![[人工智能的特征]]

(1)由人类设计,为人类服务,本质为计算,基础为数据。

(2)能感知环境,能产生反应,能与人交互,能与人互补。

(3)有适应特性,有学习能力,有演化迭代,有连接扩展。

![[人工智能基础硬件]]

创新的芯片和传感器,人工智能技术的基石

![[人工智能的技术领域]]

[[机器学习]]、[[知识图谱]]、[[自然语言处理]]、[[计算机视觉]]、[[人机交互]]、[[生物特征识别]]、[[虚拟现实/增强现实]]

![[人工智能技术开发和解决方案]]

![[人工智能产品和服务]]

[[智能物流]]、[[智能安防]]、[[智能交通、智能驾驶]]、[[智能金融]]、[[智能家居]]、[[智能制造:机器人、无人机]]


![[大型公司及领军企业]]

!![[安全、伦理、隐私问题]]



---

本文件来源:http://www.bolebook.com/technology/AI/AItimes.html

另外,你可能还需要知道:

[[编辑示范说明|编辑示范说明]]

[[文档使用指南]]

---

本文件采用[[内容分享声明|内容分享声明]]中的第一种声明:

[[署名-相同方式分享-维权代理|内容分享声明]]
!![[人工智能爱好者社区]]

人工智能爱好者社区专注人工智能、人脸识别、自然语言处理、图形识别等顶尖技术前沿科技成果研究、实战技巧

!![[南方数据科学研究院]]

南方数据科学研究院是由广东省科学技术厅、教育厅指导、佛山市政府资助、佛山市科技局协管,广东(佛山)软件产业园组织建设的研究开发与资源服务的协同机制创新型高新技术产业集团


!![[七月在线]]

七月在线专注人工智能和数据领域的在线教育,致力于培养万千AI人才和帮助千万家公司引领数据潮流,最终帮助和影响全球至少十亿人



!![[新锦成]]

新锦成是一家青年职业发展教育与服务提供商,致力于以新一代互联网与大数据技术,为青年职业发展提供智能化服务,职业教育管理分析平台和职手可得是旗下产品





!![[未来已来人工智能]]

未来已来人工智能是一家干货知识分享交流平台,专注于无人机电力行业应用,隶属于拓普智特科技(武汉)有限公司



!![[AI100头条]]

AI100是一家关注AI人工智能的技术和产业社区,提供人工智能相关的资讯、交流、培训、人才、产业服务等《北京智百科技有限公司旗下产品


!![[集智]]

集智是一个人工智能教育-求职平台,其专注AI领域相关的教育,旨在汇集百家之长,通过一种新的教育模式,使用户最为快速的入门AI,从而继续深入学习。集智涵盖了机器学习(ML)、深度学习(DL)、自然语言处理(NLP)




!![[中关村人工智能创新创业基地]]

中关村人工智能创新创业基地是一家人工智能学习社群,致力于帮助人工智能技术发现商业价值,打造最具商业价值的人工智能学习社群生态,隶属于北京创客天下智能科技有限公司


!![[景略集智]]

集智是一个主打人工智能的IT培训平台,让用户在互动中学会人工智能,景略集智(北京)科技有限公司旗下产品




!![[Robobloq魔块智能]]

Robobloq魔块智能是一家从事人工智能研究和STEM教育产品研发,生产和销售的高科技机器人企业,致力于为世界各地STEM教育机构和从业者提供从教学教具,教学内容,比赛,国际交流在内的端到端教育方案。旗下有“魔洛克’



!![[极思维]]

极思维是一个互联网开发者社区,致力于关注、挖掘和成就互联网开发者,并提供相关的资讯、报道、产品和服务,上海顶想信息科技有限公司旗下产品
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
Echo,亚马逊旗下的智能音箱

官网:https://www.amazon.com/Amazon-Echo-Bluetooth-Speaker-with-Alexa-Black/dp/B00X4WHP5E

2014年11月,亚马逊推出了一款全新概念的智能音箱:Echo,这款产品最大的亮点是将智能语音交互技术植入到传统音箱中,从而赋予了音箱人工智能的属性。

2018年3月7日,亚马逊回应称公司已经禁用了Alexa对“笑”(laugh)指令的回应。原因是Alexa内置了几种不同的笑声,这些笑声拥有不同的情绪和情景。

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

美国	公司

官网:https://www.nvidia.cn

产品:
GPU 、深度学习超级计算机 DGX-1 、自动驾驶超级计算机 Xavier	

市值 366 亿美元	

全球视觉计算技术的行业领袖及 GPU(图形处理器)的发明者。GPU(图形处理器)可在台式计算机、工作站、游戏机和更多设备上生成互动的图形效果。

1999 年,NVIDIA 发明了 GPU,这极大地推动了 PC 游戏市场的发展,重新定义了现代计算机图形技术,并彻底改变了并行计算。

超级近,GPU 深度学习为现代人工智能 (AI) 这个新的计算时代带来了新动力 

- GPU 在能够感知和理解世界的计算机、机器人和自动驾驶汽车中发挥着大脑的作用。
!! 参考链接 

* 格式参考 http://tiddlywiki.com/#WikiText
* 官网 http://tiddlywiki.com
* 华语论坛 https://groups.google.com/forum/#!forum/tiddlywiki-zh
* 蜜汁台版文档 http://tw5-zh.tiddlyspot.com
* ~TiddlyWiki 使用手册 | 站长百科 http://www.zzbaike.com/wiki/TiddlyWiki
* tid.li Plugins - A ~TiddlyWiki Plugin Source http://tid.li/tw5/plugins.html
* Community 官方导航 http://tiddlywiki.com/#Community:Community%20Plugins
* 社区插件合集 http://erwanm.github.io/tw-community-search/#CommunityPlugins
* ~TiddlyWiki 使用教學中文版 http://web.nlhs.tyc.edu.tw/~lss/wiki/TiddlyWikiTutorialTW.html

!!! 相关阅读

*  应用tiddlywiki的一点经验 http://forum.ubuntu.org.cn/viewtopic.php?t=46941&highlight=wiki
* ~TiddlyWiki 使用心得 http://blog.csdn.net/yxj911/article/details/1577778
* 一个小巧好用的个人知识管理系统 - `TiddlyWiki` http://sinojelly.blog.51cto.com/479153/200468/

!! 配置计划

# 管理员用户系统
# 网页直接保存
#* 利用 PHP 配置参考 http://tiddlywiki.com/#Saving%20on%20a%20PHP%20Server

Home范德萨范德萨分ds
!![[摩象科技]]

摩象科技是一家专注于VR虚拟现实、AR增强现实、立体视觉、穿戴式设备等领域的科技公司,产品包括VR设备、内容分发等,是小米科技的VR生态链企业

!![[进化动力]]

进化动力(Evomotion Ltd.)是一家专注于计算机视觉和VR/AR技术的科技公司。利用全球领先的虚拟相机技术以及SLAM(即时定位与地图构建)技术,进化动力意欲构建全新的VR/AR生态,助力具有深度信息的虚拟现实内容低价高效地产

!![[精位科技]]

精位科技是一家专注提供三维空间定位解决方案的软硬件公司,公司主要业务涉及空间定位,室内定位,精确定位,全域AR/VR、以及移动互联定位。目前正在研发通用平台


!![[大朋VR]]

大朋VR是一家主打VR虚拟现实的科技公司,专注于虚拟现实头戴显示产品的开发和虚拟现实内容平台的建设。隶属于上海乐相科技有限公司



!![[龙威尔]]

龙威尔是一家为好奇的年轻用户提供新潮、性价比高的VR娱乐体验的公司,致力于让VR触手可及。Long VR是龙威尔科技在虚拟现实领域的头号品牌,包括硬件头盔及VR内容平台:Long VR APP


!![[一拍科技]]

一拍科技是一家专注于VR、AR及MR领域里的内容和平台研发的公司。自主研发了基于VR全景的O2O平台、科教云VR内容平台。在前端交互和VR内容平台研发上及在医疗VR内容制作上拥有丰富的经验


!![[数字王国]]

数字王国隶属于清华启迪控股集团,是一个虚拟现实平台,公司已引入虚拟人制作以及影视特效等技术,旨在打造以“万兽王国”为核心的虚拟动物园产业链,构建独具特色的VR应用全产业生态圈



!![[3Glasses]]

3Glasses/Three glasses是一个沉浸式虚拟现实头盔,深圳虚拟现实科技有限公司旗下产品,专注于穿戴设备、虚拟现实、增强现实等领域


!![[微力互动]]

微力互动一个进行AR技术研发的公司,推出的“天眼”是一款 AR 制作平台软件,分为客户端 (增强现实浏览器) 和管理后台

!![[奇幻AI]]

奇幻科技是一家人工智能虚拟人技术公司,通过人工智能技术打造智能虚拟人。公司的目标是成为世界领先的虚拟人技术公司,未来每个人都可以通过公司的技术去创建属于自己的虚拟化身,同时奇幻科技把虚拟人技术与VR/AR


!![[威沃世界]]

威沃世界是一家VR游戏研发商,专注于提供高品质VR内容与线下平台,产品有VR系列射击游戏IP。时空侠客


!![[超级队长]]

超级队长是一家硬件公司,拥有独立外设硬件研发和生产基地,集品牌营销、运营管理、渠道开拓、内容开发于一体,专注于VR产品线下体验服务

!![[远形时空]]

远形时空是一家视觉SLAM技术公司,用计算机视觉做自主感知定位系统和模组,给机器一双眼睛,可用于机器人、AR、VR等设备


!![[uSens凌感科技]]

uSens凌感科技的愿景是为用户提供最自然的三维人机交互,核心技术 Inside-Out 追踪技术能够大规模提升AR/VR用户体验,凭借 Fingo 追踪模组跨平台的卓越性能,用户在体验VR/AR时终于摆脱了笨重的配件! 产品:手势追踪模组——Fin



!![[七维视觉]]

七维视觉(7D-VISION)是一家虚拟现实及增强现实(VR/AR)技术公司,有完整的从端(内容生产端)到端(用户体验端)的一整套产品研发、设计及服务能力。致力于中国影视预览效果、虚拟角色实时动捕、电视平台实时交互


!![[幻想现实]]

幻想现实是一家致力于AR/VR内容素材的制作的公司。为客户提供内容平台、通用/客户定制型app开发、API接口,及为各领域的提供完整增强现实解决方案。致力于全民拿起手机就可以体验最新科技的酷炫AR视觉效果


!![[BinaryVR]]

BinaryVR是一家美国VR面部识别技术开发商,公司主要研发VR技术,使其应用于社交等领域,目前公司主要研究计算机视觉面部追踪系统,特别是将用户的面部输入VR角色中,增强用户沉浸感体验


!![[银通创展]]

银通创展是一家致力于VR、大数据和人工智能在教育、交通、安全等行业创新解决方案的公司,着重于软件开发和数据研究,隶属于广东银通创展科技有限公司



!![[暴龙科技]]

暴龙科技是一家以增强现实技术(AR)为核心,融合虚拟现实技术(VR)、语音识别技术、空间定位技术为行业应用提供技术解决方案的创新性互联网企业,针对文化旅游、营销推广、教育出版领域,提供基于增强现实技术为核


!![[龙微尔科技]]

龙微尔科技是一家为好奇的年轻用户提供新潮、性价比高的VR娱乐体验的公司,旗下拥有Long VR虚拟现实领域的品牌,包括硬件头盔及VR内容平台 Long VR APP


!![[上海万居科技]]

上海万居科技是一家VR/AR/AI等科技服务商,专注于将VR/AR/AI等科技应用于地产、汽车、教育游戏等行业。致力于打造高品质科技研发、生产及应用平台

!![[来创智能]]

来创智能是国家级高新技术企业,专注智能机器人、VR/AR虚拟现实与增强现实相关领域的研发、生产和销售。公司始终追求“技术创新和产业应用”不断积累技术]]

!![[ULSee]]

ULSee是一家人脸识别技术提供商,目前的研发涵盖图像处理、人脸追踪与识别、手部及肢体的跟踪、3D 重构、AR/VR 内容创建、自然人机交互等,并被广泛应用于国内外的安防、金融、交通、娱乐等行业领域


!![[的卢深视]]

的卢深视是一家专注于计算机视觉和人工智能的高新技术企业,聚焦3D/2D人脸建模、识别以及在虚拟现实VR上的应用等方向,致力机器视觉感知重现技术的产品化,为安防、金融、教育等关键领域的关键应用提供全球领先的机器



!![[万间科技]]

BIM与虚拟现实(BIM-VR)、混合现实(BIM-MR)、人工智能(BIM-AI)技术的应用开发


!![[Akonia Holographics]]

Akonia Holographics是美国一家AR眼镜镜片研发商,专注于将VR和AR技术应用于可穿戴设备领域,旗下拥有全息数据存储和3D光学等技术,产品包括AR眼镜镜片、智能玻璃显示器等

!![[博乐信息]]

深圳市博乐信息技术有限公司是一家专注于计算机视觉创新的科技公司,聚焦增强现实(AR)与虚拟现实(VR)应用产品研发及商业化推广。博乐信息为企业提供个性化的AR/VR互动营销产品及运营方案,目前产品包括:AR/VR+体感实


!![[幻境视界]]

幻境视界是一家专注于VR内容制作的公司,企业有两大业务:VR房地产与VR艺术,企业研发的产品包括VR家装平台WO+、。梵高的秘密


!![[虚视界科技]]

虚视界科技是一家视觉主导的VR内容提供商。立足地产拓展商业应用,把VR当做工具,结合行业开发新的VR内容,服务于大市场。主要经营VR样板间,VR酒店看房]]


!![[Upano]]

Upano是一家专注于VR全景视频产品研发以及为用户提供完整行业解决方案的公司。旗下有数个VR全景视频拍摄产品。隶属于北京极图科技有限公司


!![[猎维科技]]

猎维科技是一家从事人工智能,AR+VR技术研究开发的公司,公司进行技术研发资源投入,寻求市场资本,打造行业VR内容和AI应用新产品,与行业数据结合,提高效率,改善用户体验


!![[精敏数字机器]]

精敏数字机器是一家聚焦在VRAR体验设备、自动化智能控制领域的企业。VR体验定位科普教育、文体旅游两大主要方向,给消费者打造海陆空全方位的娱乐体验,打造新型VR科幻乐园,并为客户提供完整虚拟现实主题乐园整体解决


!![[指挥家]]

指挥家是一家专业的虚拟现实内容公司,致力于先进VR技术研发以及优秀VR内容及应用的打造。公司拥有一支具有国际水准的工程师及设计师团队,研究领域涉及虚拟现实中的视觉算法 、动作控制、交互体验、数据分析等

!![[iStaging]]

iStaging是一家致力于家具与房地产行业AR/VR室内设计的公司,帮助用户可视化一个环境并实现远程进行体验

!![[冰立方VR]]

北京冰立方科技有限公司是一家科技创新企业,专注于计算机视觉和计算机图形学技术,致力于视觉和图形学技术在3D VR视频领域的应用研发


!![[iComexe科迈爱康]]

整合VR/AR/MR、智能物联、脑电等先进技术,结合人工智能的数据挖掘服务,为人们揭示了一种全新的简单且易于管理的学习模式。隶属于深圳市科迈爱康科技有限公司



!![[VeriCloud]]

VeriCloud是一家视觉云计算服务商,致力于打造视觉云计算的生态系统,包括视觉云的工作平台、GPU计算平台、视觉云的协同平台、GPU人工智能物业管理。旗下有四大产品板块:3D工作云、人工智能建筑、VR云、IRAY秒渲云




!![[盗梦空间科技]]

盗梦空间科技是一家虚拟现实体感互动解决方案供应商,在VR娱乐、影视、仿真训练等领域构筑了端到端的解决方案,致力于为政府、企业和消费者等提供有竞争力的VR体感设备解决方案和服务


!![[辰寅科技]]

辰寅科技是一家三维技术和VR技术公司,提供三维影像采集、生成、打印,在线三维展示服务


!![[NOLO VR]]

NOLO VR是一家在移动VR/AR交互领域处于全球领先地位的科技公司,经过三年时间的沉淀,在技术、产品、用户上已经拥有了领先于行业的优势。拥有自主知识产权的空间定位技术PolarTraq,拥有全球首款6-DoF移动VR硬件交互产品—NOLO 

!![[漫禹科技]]

漫禹科技是一家致力于AR/VR内容整合开发领域的公司。为客户提供内容>技术>硬件>营销的一整套开发方案。未来将更加关注教育领域的数字内容研发,带来更具价值的产品和定制方案

!![[RayVR]]

RayVR是一家拥有国际领先技术的虚拟现实引擎研发与内容创作公司,旨在为设计师打造简洁、高效、强大的三维交互设计平台;为大众提供简单、易用的快速创意及方案选型平台;在设计师与客户之间建立以设计为中心的视觉化



!![[英梅吉IMG]]

英梅吉科技(IMG)是一家计算机视觉技术服务商,产品包括实时虚拟穿戴技术SDK、人脸识别SDK、单目摄像头手势识别、AR增强现实引擎等



!![[亮风台]]

致力于成为提供最自然人机交互服务、挖掘最深度数据价值的人工智能公司。已率先推出技术领先的增强现实开发平台HiAR SDK以及国内首款基于视觉交互的增强现实智能眼镜HiAR Glasses


!![[昭云]]

昭云是一家移动互联网技术服务公司。该公司主攻领域是AR/计算机视觉/人工智能领域,致力于AR及人工智能的大型空间、家庭及多屏交互解决方案,进行相关技术应用的落地以及市场的探索推广

!![[哆宝魔镜]]

灵匙科技是一家专注于儿童早教的智能硬件开发商,公司旗下产品哆宝魔镜,是一款将全息投影技术与AR互动体验融入儿童早教的智能硬件,基于安卓系统的双屏互动设备


!![[流火互娱]]

致力于增强现实AR技术和人工智能AI的研发,开发新一代社交、生活、娱乐、商业的空间交互平台。连接阿里、腾讯两大平台,打造智能AR商业模式,为企业、商家提供全方位服务

!![[触景无限]]

触景无限,致力于发展移动增强现实平台的高科技公司,主打产品为AR浏览器。触景无限科技(北京)有限公司旗下

!![[枭龙科技]]

枭龙科技(XLOONG)是一家集智能眼镜产品和增强现实技术研发的科技公司,于2015年5月注册成立,主要专注于硬件,光学以及算法等领域


!![[信车科技]]

信车科技是一家致力于为移动出行提供基于AR和全景EPD显示的创新交互方式的企业。专注于增强现实光学技术、新材料科学技术、通讯电子、汽车电子和内容软件的研究与设计。拥有先进的智能车辆信息系统、增强现实平视显示



!![[精舞神州]]

精舞神州是一家MR混合现实人工智能技术公司,通过混合现实智能设备,即混合现实眼镜,创造一个更简单逼真的未来世界,把人类从电脑和手机屏幕中解放出来,可以在空气中完成想要完成的各种开发工作和娱乐


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
文件编辑者留名册:

出于对版权的尊重,以及对编辑者所作出劳动的尊重,请每一版的编辑者在下方留名,格式不限。



---

4

---

第三版编辑者:

第三版引用材料:

---

第二版编辑者:

第二版引用材料:

---

第一版编辑者:
Yu Gongde,希望探索宇宙的人


第一版引用材料:中国电子技术标准化研究院;人工智能标准化白皮书(2018版)http://www.cesi.ac.cn/201801/3545.html